时间:2021-05-26
很多时候我们在浏览图片时,会发现点击图片后,会弹出一个被点击图片的放大图片浮在页面上,占满整个窗口。这就是图片模态框效果。
这个效果可以使用某些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代码,如果想实现点击后扩大的动画效果,可以增加以下代码:
通过以上步骤,我们已经制作好了模态框页面。在使用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实现图片点击后出现模态框效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
微信小程序弹框和模态框实现代码实现效果图:实现代码:.wxapp-modal{width:100%;height:100%;position:fi
本文实例为大家分享了JS实现网页加载中效果的具体代码,供大家参考,具体内容如下需要材料:一张loading动画的gif图片基本逻辑:模态框遮罩+loading.
模态框(ModalDialogueBox)也可叫做模态对话框,或者对话框,当一个模态框被打开时,用户可以与该对话框进行交互,点击关闭按钮可关闭该模态框!功能实现
没有confrim那怎么实现这个效果呢?可以使用小程序里的模态框代码:wxml:删除js:del:function(e){varthat=this;wx.sho
一.模态框的正常点击出现,如添加功能