很多时候我们在浏览图片时,会发现点击图片后,会弹出一个被点击图片的放大图片浮在页面上,占满整个窗口。这就是图片模态框效果。

这个效果可以使用某些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实现图片点击后出现模态框效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# js
# 图片点击模态框
# 模态框
# AngularJs 弹出模态框(model)
# js实现简单模态框实例
# Vue.js弹出模态框组件开发的示例代码
# js利用事件的阻止冒泡实现点击空白模态框的隐藏
# angularJS模态框$modal实例代码
# AngularJS中使用ngModal模态框实例
# bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
# AngularJS模态框模板ngDialog的使用详解
# 原生js实现简单的模态框示例
# JavaScript+CSS实现模态框效果
# 模态
# 弹出
# 是个
# 上有
# 很不错
# 小编
# 框中
# 的是
# 在这里
# 好了
# 在此
# 这就是
# 将其
# 给大家
# 可以使用
# 几步
# 表现为
# 图层
# 来完成
# 所述
相关文章:
岳西云建站教程与模板下载_一站式快速建站系统操作指南
建站之星在线版空间:自助建站+智能模板一键生成方案
如何选择高性价比服务器搭建个人网站?
如何通过建站之星自助学习解决操作问题?
常州企业网站制作公司,全国继续教育网怎么登录?
建站为何优先选择香港服务器?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
如何通过主机屋免费建站教程十分钟搭建网站?
广德云建站网站建设方案与建站流程优化指南
如何在Windows环境下新建FTP站点并设置权限?
如何安全更换建站之星模板并保留数据?
教程网站设计制作软件,怎么创建自己的一个网站?
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
如何确保西部建站助手FTP传输的安全性?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
山东云建站价格为何差异显著?
洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?
,购物网站怎么盈利呢?
如何在Golang中使用replace替换模块_指定本地或远程路径
公司网站制作需要多少钱,找人做公司网站需要多少钱?
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
重庆市网站制作公司,重庆招聘网站哪个好?
网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
宝塔新建站点报错如何解决?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
电商网站制作公司有哪些,1688网是什么意思?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
如何破解联通资金短缺导致的基站建设难题?
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
建站之星安全性能如何?防护体系能否抵御黑客入侵?
如何通过.red域名打造高辨识度品牌网站?
建站主机选虚拟主机还是云服务器更好?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
深圳网站制作的公司有哪些,dido官方网站?
定制建站方案优化指南:企业官网开发与建站费用解析
实现点击下箭头变上箭头来回切换的两种方法【推荐】
网站图片在线制作软件,怎么在图片上做链接?
如何在服务器上三步完成建站并提升流量?
,制作一个手机app网站要多少钱?
外贸公司网站制作哪家好,maersk船公司官网?
TestNG的testng.xml配置文件怎么写
建站org新手必看:2024最新搭建流程与模板选择技巧
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
*请认真填写需求信息,我们会在24小时内与您取得联系。