图片全屏预览实现
来源:互联网 发布:node schedule 不好使 编辑:程序博客网 时间:2024/06/06 02:26
要实现图片的全屏预览,主要知识点有一下几个:
(1)点击图片弹出弹出层
(2)获取已点击图片的图片地址
(3)弹出层样式处理(包括背景透明度、图片居中等)
(4)点击屏幕弹出层消失
代码实现:
HTML:主要是显示图片并创建弹出层
<div id="container" class="container"> <img src="gongju1.png" alt=""/> <img src="gongju2.png" alt=""/> <img src="gongju3.jpg" alt=""/> <img src="gongju4.png" alt=""/></div><div id="popup"> <div class="bg"><img src="" alt=""/></div></div>JS:纯js实现
var imgs = document.getElementById("container").getElementsByTagName("img"); var lens = imgs.length; var popup = document.getElementById("popup"); for(var i = 0; i < lens; i++){ imgs[i].onclick = function (event){ event = event||window.event; var target = document.elementFromPoint(event.clientX, event.clientY); showBig(target.src); } } popup.onclick = function (){ popup.style.display = "none"; } function showBig(src){ popup.getElementsByTagName("img")[0].src = src; popup.style.display = "block"; }
也可添加jquery库,利用jquery实现:
//jquery版$("img").each(function(index, obj){$(this).click(function(){event = event || window.event;var target = document.elementFromPoint(event.clientX, event.clientY); showBig(target.src);});});$("#popup").click(function(){$("#popup").css({"display":"none"});});function showBig(src){$("#popup img:first").attr("src",src);$("#popup").css({"display":"block"});}
jquery实现以及js实现的原理都是一样的,但是jquery实现了类CSS选择器,对于DOM节点的获取更为简便。
CSS:样式处理
.container { width: 600px; margin: 0 auto; } .container img{ width: 45%; margin-right: 5%; margin-bottom: 30px; float: left; } /*弹出层样式*/ #popup{ position: fixed; left: 0px; top: 0px; width: 100%; height: 100%; text-align: center; display: none; } #popup .bg{ background-color: rgba(0,0,0,0.5); width: 100%; height: 100%; } @media \0screen\,screen\9 { #popup .bg{ background-color:#000000; filter:Alpha(opacity=50); position:static; } #popup .bg img{ position: relative; } } #popup img{ max-width: 100%; max-height: 100%; /*以下三行实现垂直居中*/ margin: auto; position: absolute; top: 0; left: 0; bottom: 0; right: 0; /*以上三行实现垂直居中*/ }
需要注意的是,为了使弹出层显示的图片根据浏览器窗口大小垂直居中,带注释的三行代码是必不可少的。当然,如果需求并不是水平垂直居中,那直接编辑对应的CSS样式即可!
效果图:
以上!
阅读全文
1 0
- 图片全屏预览实现
- 【选择图片Jar】全屏DialogFragment实现图片详情预览(十)
- js 实现全屏预览(F11功能)
- js 实现全屏预览(F11功能)
- 实现图片上传预览
- android实现图片预览
- HTML图片预览实现
- JS实现图片预览
- js实现图片预览
- js实现图片预览
- 上传图片实现预览
- javascript实现图片预览
- JavaScript实现图片预览
- js实现预览图片
- FileReader 实现预览图片
- js实现图片预览
- 图片预览功能实现
- html5 实现图片预览
- 解决SQLserver版本之间备份还原的兼容问题
- mapreduce流量汇总程序
- Android--通过网页打开APP并传值详解
- ionic2 serve报错
- ReactJS前端项目 问题与解决记录(刚接触前端,根据项目中遇到的坑持续更新)
- 图片全屏预览实现
- form表单提交不跳转
- Kotlin中引入BufferKnife
- 百度闪电算法实时解读
- PHP 源码探秘
- 日期的工具类
- 微信app支付的快速集成
- 【SpringMVC学习02】走进SpringMVC的世界
- C++ 的分级 (0 -- 10 )