国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JS實現圖片點擊后出現模態框效果

2019-11-19 16:40:37
字體:
來源:轉載
供稿:網友

很多時候我們在瀏覽圖片時,會發現點擊圖片后,會彈出一個被點擊圖片的放大圖片浮在頁面上,占滿整個窗口。這就是圖片模態框效果。

這個效果可以使用某些js庫實現,如bpopupJs。但是在這里我們使用純js實現,能夠更好理解效果原理和實現方法。

一.實現思路

我們點擊小圖片之后,圖片模態框出現,同時圖片模態框上有一個關閉按鈕和圖片的標題。

因此,我們的實現思路就是:

圖片模態框有大圖片,關閉按鈕,圖片標題三部分。

將圖片模態框隱藏,在點擊小圖片之后,模態框出現。

點擊關閉按鈕后,模態框隱藏。

二.HTML代碼

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

HTML代碼如下:

<h2>圖片點擊彈出模態框效果</h2><p>圖片模態框很不錯,是個值得學習的效果</p><img src="star.jpeg" id="real" alt="model test picture">

模態框的HTML代碼如下:

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

三.css代碼

我們需要通過css設置模態框中各元素的表現效果同時將其隱藏起來,具體有如下幾步:

1.模態框

#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;/*置于頁面圖層之上*/ }

 2.關閉按鈕

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

3.模態框中圖片

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

4.圖片標題

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

以上就是基本的模態框各元素的css代碼,如果想實現點擊后擴大的動畫效果,可以增加以下代碼:

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

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

四.js代碼

js代碼主要是圖片和關閉按鈕的點擊交互,需要注意的是js代碼須位于模態框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"; }

通過以上步驟,圖片的模態框效果就實現了,

最后總的代碼如下:

<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>close</title> <style> #real{  /*點擊彈出模態框的圖片*/  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><h2>圖片點擊彈出模態框效果</h2><p>圖片模態框很不錯,是個值得學習的效果</p><img src="star.jpeg" id="real" alt="model test picture"><!--圖片模態框 --><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>

以上所述是小編給大家介紹的JS實現圖片點擊后出現模態框效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彭州市| 宿松县| 黎川县| 武安市| 孟州市| 洛南县| 山阴县| 云霄县| 老河口市| 松潘县| 司法| 涿鹿县| 康马县| 兴安县| 江源县| 镇康县| 神农架林区| 阳江市| 启东市| 贵港市| 阳高县| 攀枝花市| 志丹县| 根河市| 长岭县| 呼和浩特市| 丰顺县| 丰原市| 宜兰市| 沧州市| 玛曲县| 加查县| 高密市| 昌黎县| 永德县| 富蕴县| 嘉义市| 晋宁县| 沁水县| 肃南| 离岛区|