不用插件,造一个弹框
七娃博客1,487人阅读
需求:朋友需要一个弹框,又不能引入太多插件代码,那就给他造一个弹框,也没有给我图片宽高,怎么破?
分析:html+css+js实现,利用absolute定位和css3:transform/translate实现未知宽高图片盒子始终水平垂直居中
效果:
实现代码:
css:
.boom{width: 100%;height: 100%;background: rgba(255,255,255,.5);position: fixed;z-index: 6666;left: 0;right: 0;top: 0;bottom: 0;display: none;} .boombox{position: absolute;top: 50%;left: 50%;transform: translateX(-50%) translateY(-50%);width: 320px;} .boombox img{width: 100%;} #boomClose{display: block;position: absolute;right: 0;top: 0;width: 35px;height: 35px;background: #000000;color: #fff;line-height: 35px;text-align: center;cursor: pointer;} @media screen and (max-width: 768px) { .boombox{width: 80%;} }
html:
<div class="boom"> <div class="boombox"> <img src="http://a1.att.hudong.com/05/00/01300000194285122188000535877.jpg" alt=""/> <span id="boomClose">X</span> </div> </div>
js:
window.onload = function(){ var colse = document.getElementById("boomClose"); var boom = document.getElementsByClassName("boom")[0]; boomStart() function boomStart(){//显示 boom.style.display = "block" } colse.onclick = function(){//隐藏 boom.style.display = "none" } }
[…] 前提:父盒子有position属性,且有宽高,不然是不会生效的。利用这一点可以使用全屏弹框效果:http://course.51qux.com/595.html […]