温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JS怎样实现图片点击后出现模态框效果

发布时间:2021-06-21 11:34:02 来源:亿速云 阅读:358 作者:小新 栏目:web开发

这篇文章给大家分享的是有关JS怎样实现图片点击后出现模态框效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

一.实现思路

我们点击小图片之后,图片模态框出现,同时图片模态框上有一个关闭按钮和图片的标题。

因此,我们的实现思路就是:

图片模态框有大图片,关闭按钮,图片标题三部分。

将图片模态框隐藏,在点击小图片之后,模态框出现。

点击关闭按钮后,模态框隐藏。

二.HTML代码

首先,我们的原始页面上有一个图片如下:

JS怎样实现图片点击后出现模态框效果

HTML代码如下:

<h3>图片点击弹出模态框效果</h3> <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";  }

通过以上步骤,图片的模态框效果就实现了,

JS怎样实现图片点击后出现模态框效果

最后总的代码如下:

<!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> <h3>图片点击弹出模态框效果</h3> <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怎样实现图片点击后出现模态框效果”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

js
AI