jquery 遮罩层显示img
如果点击iframe中的image显示整个页面的遮罩层,可参考如下:
http://blog.csdn.net/shiaijuan1/article/details/70160714
具体思路就是,顶层添加dom对象,用来显示信息,默认隐藏,需要时在iframe中调用,宽高设置为100%。
实现如下:
- //遮罩层
- .showmask {
- position: fixed;//position设置为fixed或者absolute或者relative,z-index才生效,且z-index值越大越显示到顶层
- z-index:;//fixed固定定位,相对于浏览器窗口
- width: 100%;//relative相对定位,相对于其正常位置进行定位,比如left:20px,相对于其正常位置向左偏移20个像素
- height: 100%;
- background-color: silver;
- top: 0px;
- left: 0px;
- opacity: 0.5;//遮罩透明度
- }
- .showmasklayer {
- position: absolute;//绝对定位,相对于该元素之外的第一个父元素进行定位
- z-index:;
- top: 0px;
- left: 0px;
- min-width: 100%;
- min-height: 100%;
- display: flex;//多列布局
- justify-content: center;//设置元素在主轴(横轴)上的对其方式
- align-items: center;//当前行侧轴(纵轴)方向上的对齐方式
- }
- //关闭按钮
- .showmaskclose {
- background-color: red;
- color: white;
- border: 2px solid gray;
- position: fixed;
- z-index:;
- top: 0px;
- right: 0px;
- cursor: pointer;
- height: 30px;
- width: 30px;
- font-size: large;
- font-weight: bold;
- text-align: center;
- display: flex;
- justify-content: center;
- align-items: center;
- }
这儿调整一下,为了解决,部分图片像素过大,浏览器无法展示全部,又没有加入拖动及滚动条等:
- .showmask {
- position: fixed;
- z-index:;
- width: 100%;
- height: 100%;
- background-color: silver;
- top: 0px;
- left: 0px;
- opacity: 0.5;
- }
- .showmasklayer {
- position: absolute;
- z-index:;
- top: 0px;
- left: 0px;
- /*min-width: 100%; 这里默认显示100%,不能超过100%
- min-height: 100%;*/
- width: 100%;
- height: 100%;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- .showmasklayer img {
- max-width: 100%;/*图片最大宽高都是100%*/
- max-height: 100%;
- }
- .showmaskclose {
- background-color: red;
- color: white;
- border: 2px solid gray;
- position: fixed;
- z-index:;
- top: 0px;
- right: 0px;
- cursor: pointer;
- height: 30px;
- width: 30px;
- font-size: large;
- font-weight: bold;
- text-align: center;
- display: flex;
- justify-content: center;
- align-items: center;
- }
iframe中调用如下:
- $(function () {
- $("#image").on("click", function () {
- //判断是否已经添加过遮罩层dom
- if ($(".showmaskclose", window.top.document).length == 0) {
- //附加遮罩层dom
- $("body", window.top.document).append("<div class='showmaskclose'>×</div>").append("<div class='showmask'></div>").append("<div class='showmasklayer'></div>")
//这儿双击遮罩showmask/showmasklayer时候,会导致showmasklayer图片成选中状态,这儿可以调整为如下,参照:www.w3cui.com?p=141:
//.append("<div class='showmasklayer' unselectable='on' style='-moz-user-select:none;' onselectstart='return false;'></div>");- //附加后绑定事件
- $(".showmaskclose", window.top.document).on("click", function () { htsHide(); })
- $(".showmask", window.top.document).on("dblclick", function () { htsHide(); })
- $(".showmasklayer", window.top.document).on("dblclick", function () { htsHide(); })
- //添加图片
- $(".showmasklayer", window.top.document).append("<img src='" + this.src + "' />")
- }
- else {
- //遮罩层dom显示
- $(".showmaskclose", window.top.document).show();//可通过css设置display为none和block控制显示和隐藏
- $(".showmask", window.top.document).show();
- $(".showmasklayer", window.top.document).show();
- //切换图片
- $(".showmasklayer > img", window.top.document).attr('src', this.src);
- }
- });
- });
- function htsHide() {
- //遮罩层隐藏
- $(".showmask", window.top.document).hide();
- $(".showmaskclose", window.top.document).hide();
- $(".showmasklayer", window.top.document).hide();
- }
以上的js在双击showmask关闭时,重新打开,时而会出现一个类似于showmask选中状态的东西,体验不好,可以每次关闭后移除,下次点击时添加,如下:
- $(function () {
- $("#image").on("click", function () {
//添加遮罩层- $("body", window.top.document).append("<div class='showmaskclose'>×</div>").append("<div class='showmask'></div>").append("<div class='showmasklayer'></div>")
- //绑定遮罩层事件
- $(".showmaskclose", window.top.document).on("click", function () { htsHide(); })
- $(".showmask", window.top.document).on("dblclick", function () { htsHide(); })
- $(".showmasklayer", window.top.document).on("dblclick", function () { htsHide(); })
- $(".showmasklayer", window.top.document).append("<img src='" + this.src + "' />")
- });
- });
- function htsHide() {
//移除遮罩层- $(".showmaskclose", window.top.document).remove();
- $(".showmask", window.top.document).remove();
- $(".showmasklayer", window.top.document).remove();
- }
呵呵,升级一下,加入图像的旋转功能,主要是通过css样式调整实现:
css:
- .showmask {
- position: fixed;
- z-index:;
- width: 100%;
- height: 100%;
- background-color: silver;
- top: 0px;
- left: 0px;
- opacity: 0.5;
- }
- .showmasklayer {
- position: absolute;
- z-index:;
- top: 0px;
- left: 0px;
- width: 100%;
- height: 100%;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- .showmasklayer img {
- max-width: 100%;
- max-height: 100%;
- }
- .showmaskrotate {/*实现旋转的按钮*/
- background-color: Highlight;
- color: white;
- border: 2px solid gray;
- position: fixed;
- z-index:;
- top: 0px;
- right: 40px;
- cursor: pointer;
- height: 30px;
- width: 30px;
- font-size: large;
- font-weight: bold;
- text-align: center;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- .showmaskclose {
- background-color: red;
- color: white;
- border: 2px solid gray;
- position: fixed;
- z-index:;
- top: 0px;
- right: 0px;
- cursor: pointer;
- height: 30px;
- width: 30px;
- font-size: large;
- font-weight: bold;
- text-align: center;
- display: flex;
- justify-content: center;
- align-items: center;
- }
js,rotate实现:
- /**
- * jquery-rotate v0.1.0
- * Very lightweight jquery rotate plugin using CSS 3 Transformation
- * https://github.com/schickling/jquery-rotate*/
- (function ($) {
- $.fn.extend({
- rotate: function (deg) {
- // cache dom element
- var $this = $(this);
- // make deg random if not set
- if (deg === null) {
- deg = Math.floor(Math.random() * 359);
- }
- // rotate dom element
- $this.css({
- '-webkit-transform': 'rotate(' + deg + 'deg)',
- '-moz-transform': 'rotate(' + deg + 'deg)',
- '-ms-transform': 'rotate(' + deg + 'deg)',
- '-o-transform': 'rotate(' + deg + 'deg)',
- 'transform': 'rotate(' + deg + 'deg)'
- });
- // make chainable
- return $this;
- }
- });
- })(jQuery);
js,调用img遮罩:
- function htsHide() {
- $(".showmaskclose", window.top.document).remove();
- $(".showmaskrotate", window.top.document).remove();
- $(".showmask", window.top.document).remove();
- $(".showmasklayer", window.top.document).remove();
- }
- oper = {
- View: function (imagepath) {
- $("body", window.top.document).append("<div class='showmaskclose'>×</div><div class='showmaskrotate'>⌒</div>").append("<div class='showmask'></div>").append("<div class='showmasklayer'></div>")
- var tIndex = 0;//控制旋转次数
- $(".showmaskclose", window.top.document).on("click", function () { htsHide(); })
- $(".showmaskrotate", window.top.document).on("click", function () { $('.showmasklayer > img', window.top.document).rotate(-90 * ++tIndex); })//实现旋转功能,每次逆时针旋转90度
- $(".showmask", window.top.document).on("dblclick", function () { htsHide(); })
- $(".showmasklayer", window.top.document).on("dblclick", function () { htsHide(); })
- $(".showmasklayer", window.top.document).append("<img src='" + imagepath + "' style='max-height:100%;max-width:100%;'/>")
- }
- }
jquery 遮罩层显示img的更多相关文章
- jQuery遮罩层插件
在网页上常常遇到须要等待非常久的操作,比方导出报表等.为了预防用户点击其它操作或者多次点击同个功能,须要用遮罩层把页面或者操作区盖住.防止用户进行下一步操作.同一时候能够提高界面友好度,让用户知道操作 ...
- jQuery遮罩层登录对话框
用户登录是许多网站必备的功能.有一种方式就是不管在网站的哪个页面,点击登录按钮就会弹出一个遮罩层,显示用户登录的对话框.这用方式比较灵活方便.而现在扫描二维码登录的方式也是很常见,例如QQ.微信.百度 ...
- jQuery遮罩层的实现
遮罩层其实就是一个占据整个页面的半透明效果的页面元素,一般用div实现.页面中实现遮罩层,无非就是为了让用户只能操作弹出窗口的内容,而不允许操作弹出窗口外的内容. 在实现时,我使用了两个div,一个遮 ...
- JS+CSS简单实现DIV遮罩层显示隐藏【转藏】
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JS+CSS简单实现DIV遮罩层显示隐藏
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- z-index设置后导致遮罩层显示跳动问题
如图,1,3为top,bottom div,2为iscroll,4为遮罩层,如果1设置z-index后,不设置遮挡不住2,遮罩层4弹出会卡顿,既不设置z-index,又能遮挡iscroll的办法是在h ...
- jquery遮罩层
(function () { //遮罩层实现 zhe zhao ceng kexb 2016.2.24 $.extend($.fn, { mask: function (msg, maskDivCla ...
- jQuery遮罩层效果
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 页面用一个遮罩层显示加载,加载完后隐藏该div
<div id="background" class="background" style="display: none; "> ...
随机推荐
- 使用libpcab抓包&处理包
#include <stdio.h> #include <stdlib.h> #include <strings.h> #include <string.h& ...
- PHPCMS v9表单向导中怎么加入验证码
表单想到比较简单,所以没有加入验证码的功能.网上的类似教程又大多数不准确.所以亲自测试了一下,发现下面的方法是可用的.希望对有需求的朋友们有所帮助. 1.首先是调用表单的页面加入验证码.表单js调用模 ...
- 【week3】四人小组项目—东师论坛
项目选题:东北师范大学论坛 小组名称:nice! 项目组长:李权 组员:于淼 刘芳芳 杨柳. 本周任务: 1.发布申请 功能列表: 1.注册,登录 2.校内信息公告推送 3.十大热点 (根据搜索量.评 ...
- week1 技术随笔
类别c 内容c 开始时间s 结束时间e 被打断时间I 总计(min) 9.5 随笔 构建之法福后感 22:00 24:00 7 113 9.6 分析 需求分析 9:00 9:30 2 28 编码 词频 ...
- PAT-2018年冬季考试-乙级
1091 N-自守数 代码: #include <bits/stdc++.h> using namespace std; int T; int A(int a) { ; while(a) ...
- 【Docker 命令】- attach命令
docker attach :连接到正在运行中的容器. 语法 docker attach [OPTIONS] CONTAINER 要attach上去的容器必须正在运行,可以同时连接上同一个contai ...
- 2018年小米高级 PHP 工程师面试题(模拟考试卷)
1.通过哪一个函数,可以把错误转换为异常处理? A:set_error_handler B:error_reporting C:error2exception D:catch 正确答案:A 答案分析: ...
- springBoot @EnableAutoConfiguration深入分析
1.新建一个项目中需要提供配置类 2.在META-INF/spring.factorties在文件中配置 org.springframework.boot.autoconfigure.EnableAu ...
- C结构体【转】
“结构”是一种构造类型,它是由若干“成员”组成的.每一个成员可以是一个基本数据类型或者又是一个构造类型.结构既是一种“构造”而成的数据类型,那么在说明和使用之前必须先定义它,也就是构造它.如同在说明和 ...
- SAPI 包含sphelper.h编译错误解决方案
原文连接地址:http://blog.csdn.net/believenow_notfuture/article/details/52191229 [转]SAPI 包含sphelper.h编译错误解决 ...