很多时候我们在浏览图片时,会发现点击图片后,会弹出一个被点击图片的放大图片浮在页面上,占满整个窗口。这就是图片模态框效果。
这个效果可以使用某些
js库实现,如bpopupJs。但是在这里我们使用纯js实现,能够更好理解效果原理和实现方法。
思路
我们点击小图片之后,图片模态框出现,同时图片模态框上有一个关闭按钮和图片的标题。
因此,我们的实现思路就是:
- 图片模态框有大图片,关闭按钮,图片标题三部分。
 - 将图片模态框隐藏,在点击小图片之后,模态框出现。
 - 点击关闭按钮后,模态框隐藏。
 
HTML
首先,我们的原始页面上有一个图片如下:

HTML代码如下:
1  | <h2>图片点击弹出模态框效果</h2>  | 
模态框的HTML代码如下:
1  | <div class="motai" id="mo">  | 
CSS
我们需要通过css设置模态框中各元素的表现效果同时将其隐藏起来,具体有如下几步:
模态框
1  | #mo{  | 
关闭按钮
1  | .close{  | 
模态框中图片
1  | #moimg{  | 
图片标题
1  | #caption{  | 
动画效果
如果想实现点击后扩大的动画效果,可以增加以下代码:
1  | #moimg,#caption{  | 
通过以上步骤,我们已经制作好了模态框页面。在使用js来完成交互效果就可以了。
JS
js代码主要是图片和关闭按钮的点击交互,需要注意的是js代码须位于模态框HTML代码之后,js具体代码如下:
1  | var motai=document.getElementById('mo')  | 
通过以上步骤,图片的模态框效果就实现了,

最后总的代码如下:
1  | 
  | 
