Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > Bagaimana untuk mencapai imej klik-untuk-besar menggunakan css tulen

Bagaimana untuk mencapai imej klik-untuk-besar menggunakan css tulen

藏色散人
Lepaskan: 2023-01-28 14:40:34
asal
2439 orang telah melayarinya

Kaedah CSS tulen untuk merealisasikan imej klik-untuk-besar: 1. Buat fail sampel HTML 2. Tetapkan "

"; 3. Gunakan kaedah "function showBgImg(e) {...}" untuk mencapai kesan klik pada imej untuk membesarkannya.

Bagaimana untuk mencapai imej klik-untuk-besar menggunakan css tulen

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi HTML5&&CSS3, komputer DELL G3

Cara menggunakan css tulen untuk klik pada imej untuk membesarkannya?

Klik untuk membesarkan gambar latihan praktikal Css

I Latar Belakang

Fungsi yang sangat biasa, biasanya dipaparkan di laman web Ia lakaran kenit. Selepas anda mengklik pada lakaran kenit, gambar yang diperbesarkan akan dipaparkan dalam kotak timbul

Jadi bagaimanakah fungsi ini dilaksanakan? Perkara Operasi

1. Idea

Mula-mula belah struktur halaman:

  • Terdapat tetingkap timbul yang memaparkan imej besar dalam pop- tetingkap atas; dan Tetingkap pop timbul tersembunyi secara lalai
  • Anda boleh meletakkan banyak gambar pada halaman utama dan menambah acara klik
  • Selepas mengklik, tetingkap timbul memaparkan dan memaparkan gambar besar
  • Klik pada gambar besar Selepas berikut, tutup tetingkap pop timbul

II Pelaksanaan

Mengikut penerangan di atas, kami mula-mula melaksanakan versi asas, mula-mula tulis HTML

<body>

<!-- 先来实现弹窗 -->
<div class=&#39;modal&#39; id=&#39;modal&#39;>
    <img  id=&#39;bgImg&#39; / alt="Bagaimana untuk mencapai imej klik-untuk-besar menggunakan css tulen" >
</div>


<!-- 下面则是主页内容,先只给几个图片 -->

<div>
    <img class=&#39;thum-img&#39; 
    src=&#39;http://f.hiphotos.baidu.com/image/pic/item/80cb39dbb6fd5266cdb2ba16a718972bd4073612.jpg&#39; />
</div>

</body>
Salin selepas log masuk

Kemudian tambah gaya yang sepadan, yang memerlukan modal disembunyikan secara lalai, jadi seperti berikut (untuk membezakan pop- dengan lebih baik tetingkap atas, warna latar belakang dan sempadan ditambah)

<style>
.modal {
    display: none;
    margin: auto;
    width: 80%;
    height: 80%;
    background-color: rgb(0, 0, 0, 0.89);
    z-index: 1;
    border: 1px solid rgb(255,255,255,1);
}

.modal>img {
    display: block;
    margin: auto;
    padding: 10%;
    max-width: 60%;
    max-height: 60%;
}

.thum-img {
    width: 200px;
    height: 200px;
    margin: auto;
    display: block;
    padding: 40px;
}

</style>
Salin selepas log masuk

Langkah seterusnya ialah klik pada logik untuk memaparkan imej besar, yang dilaksanakan dengan bantuan js.

<script>
    var modal = document.getElementById(&#39;modal&#39;);
    var bgImg = document.getElementById(&#39;bgImg&#39;);
    var thumImg = document.getElementById(&#39;thumImg&#39;);
    thumImg.onclick = function() {
        modal.style.display = &#39;block&#39;;
        bgImg.src = this.src;
    }

    bgImg.onclick = function() {
        modal.style.display = &#39;none&#39;;
    }
</script>
Salin selepas log masuk

Selepas memasang pelaksanaan di atas ke dalam html, uji dan lihat terus , kesan demonstrasi adalah seperti berikut

Bagaimana untuk mencapai imej klik-untuk-besar menggunakan css tulen

Walaupun perkara di atas mencapai keputusan yang kami jangkakan, terdapat beberapa perkara yang tidak memuaskan

  • bukan seperti yang kami jangkakan Kesan tetingkap pop timbul, imej asal telah diperah
  • Adalah lebih baik jika terdapat kesan animasi yang diperbesarkan dalam tetingkap pop timbul (hanya boleh menggunakan animasi yang dipelajari sebelum ini)
  • Untuk kekuatan imej Cara klik untuk membesarkan apabila terdapat banyak gambar dalam

III Lanjutan

Pertama sekali, jika anda mahu ia menjadi tetingkap timbul sebenar tanpa menjejaskan reka letak sedia ada, anda biasanya menetapkan kedudukan Untuk melakukannya, sebagai contoh, kita boleh menambah lapisan lain di luar modal dan mengubahnya menjadi

<div style=&#39;position:fixed&#39;>
    <div class=&#39;modal&#39; id=&#39;modal&#39;>
        <img  id=&#39;bgImg&#39; / alt="Bagaimana untuk mencapai imej klik-untuk-besar menggunakan css tulen" >
    </div>
</div>
Salin selepas log masuk

Kedua, gaya tetingkap timbul terlalu hodoh sebelum ini. Untuk mencapai kesan pop timbul yang cantik,

  • telah ditukar untuk mengisi latar belakang dengan semua gambar
  • alih keluar warna latar belakang, tambah bayang dan tambah sempadan putih

Selepas pengubahsuaian css adalah seperti berikut

.modal {
    display: none;
    margin: auto;
    padding-top: 5%;
    width: 50%;
    height: 80%;
    z-index: 1;
    background-color: white;
}

.modal img {
    display: block;
    padding: 10px;
    margin: auto;
    max-width: 100%;
    max-height: 100%;
    box-shadow: 0 2px 6px rgb(0, 0, 0, 0.2), 0 10px 20px rgb(0, 0, 0, 0.2);
    border-radius: 12px;
    border: 1px solid white;
}
Salin selepas log masuk

Seterusnya, pertimbangkan untuk menambah animasi dan kesan pembesaran

@keyframes zoom {
    from {transform: scale(0.1)}
    to {transform: scale(1)}
}

.modal img {
    animation-name: zoom;
    animation-duration: 0.6s;
}
Salin selepas log masuk

Seterusnya, lihat kesan demonstrasi Seperti berikut

Bagaimana untuk mencapai imej klik-untuk-besar menggunakan css tulen

Langkah seterusnya ialah mengubahnya menjadi penyelesaian universal untuk menyokong berbilang imej Ini terutamanya pengubahsuaian acara klik imej. Di atas adalah tempat yang dikodkan, cuma buat beberapa perubahan

Bagaimana untuk mencapai imej klik-untuk-besar menggunakan css tulen

IV Kod sumber

Akhirnya, semua kod sumber diberikan

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>小灰灰css学习笔记</title> 
<style>
#modal {
	display: none;
}
.modal {
    margin: auto;
    padding-top: 5%;
    width: 50%;
    height: 80%;
    z-index: 1;
}

.modal img {
    animation-name: zoom;
	animation-duration: 0.6s;
    display: block;
    padding: 10px;
    margin: auto;
    max-width: 100%;
    max-height: 100%;
    box-shadow: 0 2px 6px rgb(0, 0, 0, 0.2), 0 10px 20px rgb(0, 0, 0, 0.2);
    border-radius: 12px;
    border: 1px solid white;
}

@keyframes zoom {
    from {transform: scale(0.1)}
    to {transform: scale(1)}
}

.thum-img {
    float: left;
    width: 200px;
    height: 200px;
    margin: auto;
    display: block;
    padding: 40px;
}
</style>
	</head>
<body>
<!-- 先来实现弹窗 -->
<div style=&#39;position:fixed;width:100%;height:100%;background-color:rgb(0,0,0,0.65)&#39; id=&#39;modal&#39;>
<div class=&#39;modal&#39; id=&#39;modalw&#39;>
    <img  id=&#39;bgImg&#39; / alt="Bagaimana untuk mencapai imej klik-untuk-besar menggunakan css tulen" >
</div>
</div>


<!-- 下面则是主页内容,先只给几个图片 -->

<div>
    <img onclick=&#39;showBgImg(this)&#39; class=&#39;thum-img&#39; 
    src=&#39;http://f.hiphotos.baidu.com/image/pic/item/80cb39dbb6fd5266cdb2ba16a718972bd4073612.jpg&#39; />
 	<img  class=&#39;thum-img&#39; src=&#39;http://a.hiphotos.baidu.com/image/pic/item/e61190ef76c6a7ef5e886d03f1faaf51f3de666d.jpg&#39; onclick=&#39;showBgImg(this)&#39;/ alt="Bagaimana untuk mencapai imej klik-untuk-besar menggunakan css tulen" > 
    <img  class=&#39;thum-img&#39; src=&#39;http://g.hiphotos.baidu.com/image/pic/item/730e0cf3d7ca7bcb747b4a5cb2096b63f624a845.jpg&#39; onclick=&#39;showBgImg(this)&#39;/ alt="Bagaimana untuk mencapai imej klik-untuk-besar menggunakan css tulen" >
    <img  class=&#39;thum-img&#39; src=&#39;http://c.hiphotos.baidu.com/image/pic/item/b21c8701a18b87d6657856e70c0828381f30fd14.jpg&#39; onclick=&#39;showBgImg(this)&#39;/ alt="Bagaimana untuk mencapai imej klik-untuk-besar menggunakan css tulen" >
    <img  class=&#39;thum-img&#39; src=&#39;https://raw.githubusercontent.com/liuyueyi/Source/master/img/info/blogInfoV2.png&#39; onclick=&#39;showBgImg(this)&#39;/ alt="Bagaimana untuk mencapai imej klik-untuk-besar menggunakan css tulen" >
</div>

<script>
    var modal = document.getElementById(&#39;modal&#39;);
    var bgImg = document.getElementById(&#39;bgImg&#39;);


    function showBgImg(e) {
		modal.style.display = &#39;block&#39;;
		bgImg.src = e.src;
	}

	bgImg.onclick = function() {
		modal.style.display = &#39;none&#39;;
	}
</script>
</body>
</html>
Salin selepas log masuk
Pembelajaran yang disyorkan: "tutorial video css"

Atas ialah kandungan terperinci Bagaimana untuk mencapai imej klik-untuk-besar menggunakan css tulen. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan