溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JS怎樣實(shí)現(xiàn)圖片點(diǎn)擊后出現(xiàn)模態(tài)框效果

發(fā)布時(shí)間:2021-06-21 11:34:02 來源:億速云 閱讀:301 作者:小新 欄目:web開發(fā)

這篇文章給大家分享的是有關(guān)JS怎樣實(shí)現(xiàn)圖片點(diǎn)擊后出現(xiàn)模態(tài)框效果的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

一.實(shí)現(xiàn)思路

我們點(diǎn)擊小圖片之后,圖片模態(tài)框出現(xiàn),同時(shí)圖片模態(tài)框上有一個(gè)關(guān)閉按鈕和圖片的標(biāo)題。

因此,我們的實(shí)現(xiàn)思路就是:

圖片模態(tài)框有大圖片,關(guān)閉按鈕,圖片標(biāo)題三部分。

將圖片模態(tài)框隱藏,在點(diǎn)擊小圖片之后,模態(tài)框出現(xiàn)。

點(diǎn)擊關(guān)閉按鈕后,模態(tài)框隱藏。

二.HTML代碼

首先,我們的原始頁面上有一個(gè)圖片如下:

JS怎樣實(shí)現(xiàn)圖片點(diǎn)擊后出現(xiàn)模態(tài)框效果

HTML代碼如下:

<h3>圖片點(diǎn)擊彈出模態(tài)框效果</h3>
<p>圖片模態(tài)框很不錯(cuò),是個(gè)值得學(xué)習(xí)的效果</p>
<img src="star.jpeg" id="real" alt="model test picture">

模態(tài)框的HTML代碼如下:

<div class="motai" id="mo">
 <span class="close" id="close">×</span>
 <img class="motaiimg" id="moimg">
 <div id="caption"></div>
</div>

三.css代碼

我們需要通過css設(shè)置模態(tài)框中各元素的表現(xiàn)效果同時(shí)將其隱藏起來,具體有如下幾步:

1.模態(tài)框

#mo{
  display: none;/*隱藏模態(tài)框*/
  width: 100%;
  height: 100%;
  position: fixed;/*定位方式為固定定位*/
  overflow: auto;/*不滾動(dòng)*/
  background-color: rgba(0,0,0,0.7);
  top: 0px;
  left: 0px;
  z-index: 1;/*置于頁面圖層之上*/
 }

 2.關(guān)閉按鈕

 .close{
  font-size: 40px;
  font-weight: bold;
  position: absolute;
  top: 20px;
  right: 14%;
  color:#f1f1f1;
 }
 .close:hover,
 .close:focus{
  color:#bbb;
  cursor:pointer;
 }

3.模態(tài)框中圖片

#moimg{
  display: block;/*圖片表現(xiàn)為塊*/
  margin:25px auto;/*圖片居中對齊*/
  width: 60%;
  max-width: 750px;/*自適應(yīng)布局*/
 }

4.圖片標(biāo)題

#caption{
  text-align: center;/*文本居中*/
  margin: 15px auto;
  width: 60%;
  max-height: 750px;
  font-size: 20px;
  color:#ccc;
 }

以上就是基本的模態(tài)框各元素的css代碼,如果想實(shí)現(xiàn)點(diǎn)擊后擴(kuò)大的動(dòng)畫效果,可以增加以下代碼:

 #moimg,#caption{
  -webkit-animation: first 1s;
  -o-animation: first 1s;
  animation: first 1s;
 }
 @keyframes first{
  from{transform: scale(0.1);}
  to{transform: scale(1);}
 }

通過以上步驟,我們已經(jīng)制作好了模態(tài)框頁面。在使用js來完成交互效果就可以了。

四.js代碼

js代碼主要是圖片和關(guān)閉按鈕的點(diǎn)擊交互,需要注意的是js代碼須位于模態(tài)框HTML代碼之后,js具體代碼如下,:

var motai=document.getElementById('mo')
 var moimg=document.getElementById("moimg")
 var realimg=document.getElementById("real")
 var caption=document.getElementById("caption")
 realimg.onclick=function(){
  motai.style.display="block"
  moimg.src=this.src
  caption.innerHTML=this.alt
 }
 var span=document.getElementById("close");
 span.onclick=function(){
  motai.style.display="none";
 }

通過以上步驟,圖片的模態(tài)框效果就實(shí)現(xiàn)了,

JS怎樣實(shí)現(xiàn)圖片點(diǎn)擊后出現(xiàn)模態(tài)框效果

最后總的代碼如下:

<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <title>close</title>
 <style>
 #real{
  /*點(diǎn)擊彈出模態(tài)框的圖片*/
  margin: 30px;
  width: 250px;
  border-radius:6px;
 }
 #real:hover{
  opacity: 0.6;
 }
 #mo{
  display: none;/*隱藏*/
  width: 100%;
  height: 100%;
  position: fixed;
  overflow: auto;
  background-color: rgba(0,0,0,0.7);
  top: 0px;
  left: 0px;
  z-index: 1;
 }
 #moimg{
  display: block;
  margin:25px auto;
  width: 60%;
  max-width: 750px;
 }
 #caption{
  text-align: center;
  margin: 15px auto;
  width: 60%;
  max-height: 750px;
  font-size: 20px;
  color:#ccc;
 }
 #moimg,#caption{
  -webkit-animation: first 1s;
  -o-animation: first 1s;
  animation: first 1s;
 }
 @keyframes first{
  from{transform: scale(0.1);}
  to{transform: scale(1);}
 }
 .close{
  font-size: 40px;
  font-weight: bold;
  position: absolute;
  top: 20px;
  right: 14%;
  color:#f1f1f1;
 }
 .close:hover,
 .close:focus{
  color:#bbb;
  cursor:pointer;
 }
 @media only screen and(max-width:750px ) {
  #moimg{
   width: 100%;
  }
 }
 </style>
</head>
<body>
<h3>圖片點(diǎn)擊彈出模態(tài)框效果</h3>
<p>圖片模態(tài)框很不錯(cuò),是個(gè)值得學(xué)習(xí)的效果</p>
<img src="star.jpeg" id="real" alt="model test picture">
<!--圖片模態(tài)框 -->
<div class="motai" id="mo">
 <span class="close" id="close">×</span>
 <img class="motaiimg" id="moimg">
 <div id="caption"></div>
</div>
<script>
 var motai=document.getElementById('mo')
 var moimg=document.getElementById("moimg")
 var realimg=document.getElementById("real")
 var caption=document.getElementById("caption")
 realimg.onclick=function(){
  motai.style.display="block"
  moimg.src=this.src
  caption.innerHTML=this.alt
 }
 var span=document.getElementById("close");
 span.onclick=function(){
  motai.style.display="none";
 }
</script>
</body>
</html>

感謝各位的閱讀!關(guān)于“JS怎樣實(shí)現(xiàn)圖片點(diǎn)擊后出現(xiàn)模態(tài)框效果”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

js
AI