很多时候我们在浏览图片时,会发现点击图片后,会弹出一个被点击图片的放大图片浮在页面上,占满整个窗口。这就是图片模态框效果。
这个效果可以使用某些
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 |
|