jquery自定义弹层显示大图(兼容多层iframe)
1、介绍
a:可用于多层iframe中,显示在最外层
b:动画效果为从点击的图片位置开始放大至全屏显示
2、效果图


3、js代码
1 function ShowMaxImg(src, y, x, w, h) {
2 var str = '<section id="ShowMaxImgBox">';
3 str += '<div class="button button-primary ShowMaxImgClose" onclick="window.top.RemoveMaxImg(' + y + ',' + x + ',' + w + ',' + h + ')">';
4 str += '<i class="ion ion-close"></i>';
5 str += '</div>';
6 str += '<section class="ShowMaxImgBg" style=\'width:' + w + 'px;height:' + h + 'px;top:' + y + 'px;left:' + x + 'px;background-image:url(' + src + ')\' onclick="window.top.RemoveMaxImg(' + y + ',' + x + ',' + w + ',' + h + ')">';
7 str += '</section>';
8 str += '</section>';
9 $("#ShowMaxImgBox").remove();
10 window.top.$("body").append(str);
11 window.top.$("#ShowMaxImgBox .ShowMaxImgBg").animate({ "height": "100vh", "width": "100vw", "left": "0", "top": "0" }, 300, "swing");
12 }
13 function RemoveMaxImg(y, x, w, h) {
14 $("#ShowMaxImgBox .ShowMaxImgBg").animate({ "height": h + "px", "width": w + "px", "left": x + "px", "top": y + "px" }, 300, "swing", function () {
15 $("#ShowMaxImgBox").remove();
16 });
17 }
18
19 function GetPointInScreen(e, x, y) {
20 var point = e.getBoundingClientRect();
21 x += point.left;
22 y += point.top;
23 if (self != top) {
24 return window.parent.GetPointInScreen(window.parent.$("[name='myIframe']")[0], x, y);
25 }
26 return { x: x, y: y };
27 }
28
29 $("body").on("click", ".ShowMaxImg,[ShowMaxImg]", function () {
30 var src = "";
31 if ($(this).attr("ShowMaxImg") != undefined) {
32 src = $(this).attr("ShowMaxImg");
33 }
34 else {
35 src = $(this).attr("src");
36 }
37 if (src == "" || src == undefined) {
38 return;
39 }
40 var point = GetPointInScreen(this, 0, 0);
41 var w = $(this).width();
42 var h = $(this).height();
43 ShowMaxImg(src, point.y, point.x, w, h);
44 });
4、cs代码
1 #ShowMaxImgBox {
2 position: fixed;
3 width: 100vw;
4 height: 100vh;
5 display: flex !important;
6 background-color: rgba(0,0,0,0.6);
7 /*实现垂直居中*/
8 align-items: center !important;
9 /*实现水平居中*/
10 justify-content: center !important;
11 text-align: justify !important;
12 text-decoration: none;
13 -moz-user-select: none;
14 -webkit-user-select: none;
15 -ms-user-select: none;
16 user-select: none;
17 left: 0;
18 top: 0;
19 z-index: 9999;
20 }
21
22 #ShowMaxImgBox .ShowMaxImgBg {
23 z-index: -1;
24 position: absolute;
25 background-repeat: no-repeat;
26 background-position: center;
27 background-size: contain;
28 }
29
30 #ShowMaxImgBox .ShowMaxImgClose {
31 position: absolute;
32 width: 30px;
33 height: 30px;
34 right: 20px !important;
35 top: 20px !important;
36 z-index: 99;
37 }
38
39 #ShowMaxImgBox .ShowMaxImgClose i {
40 font-size: 20px;
41 }
42
43 #ShowMaxImgBox .ShowMaxImgBg p {
44 color: white;
45 position: absolute;
46 bottom: 10px;
47 text-align: center;
48 width: 100%;
49 height: 30px;
50 line-height: 30px;
51 }
52
53 [upload-showmaximg], [ShowMaxImg], .ShowMaxImg {
54 cursor: zoom-in !important;
55 }
56
57 #ShowMaxImgBox .ShowMaxImgBg:hover, #ShowMaxImgBox .ShowMaxImgClose:hover {
58 cursor: zoom-out !important;
59 }
jquery自定义弹层显示大图(兼容多层iframe)的更多相关文章
- CSS3/jQuery自定义弹出窗口
简单演示一下,精简了演示效果和css样式文件,更利于在项目中的实际应用 引入style.css index.js <!DOCTYPE HTML PUBLIC "-//W3C//DT ...
- Jquery 点击图片在弹出层显示大图
http://blog.csdn.net/wongwaidah/article/details/28432427(案例链接出处,本人只是转载收藏) <html> <head> ...
- jQuery Layer 弹层组件
layer是一款近年来口碑非常不错的web弹层组件,她具备全方位的解决方案,致力于服务各个水平段的开发人员,您的页面会轻松地拥有丰富友好的操作体验. 在与同类组件的比较中,layer总是能轻易获胜.她 ...
- 基于Vue.js PC桌面端弹出框组件|vue自定义弹层组件|vue模态框
vue.js构建的轻量级PC网页端交互式弹层组件VLayer. 前段时间有分享过一个vue移动端弹窗组件,今天给大家分享一个最近开发的vue pc端弹出层组件. VLayer 一款集Alert.Dia ...
- [转]Jquery 点击图片在弹出层显示大图
这个还行不需要别的包! https://www.cnblogs.com/antis/p/7053991.html
- JQuery - 点击图片显示大图
效果: 目录结构: 代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="De ...
- apicloud实现各种自定义弹层组件
- jQuery 鼠标移入图片 显示大图并跟随鼠标移动
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 解决: 移动端经mouseover显示出的弹层中链接点击问题
通常我们会遇到这样的需求,导航菜单在鼠标划过的时候显示自定义弹层,在弹层中有一些链接需要点击后跳转或者其他一些事件.比如: $(".menu li").on("mouse ...
随机推荐
- ASP。NET Web表单模型,部分呈现和事件
下载EventExample.zip - 41.33 KB 下载EventandAjaxExample.zip - 41.94 KB 介绍 通过参考ASP获得Web应用程序环境及其约束的概述.NET ...
- Elasticsearch(3):别名
ES中可以为索引添加别名,一个别名可以指向到多个索引中,同时在添加别名时可以设置筛选条件,指向一个索引的部分数据,实现在关系数据库汇总的视图功能,这就是ES中别名的强大之处.别名是一个非常实用的功 ...
- 关于IPA文件重签名后如何跟踪管理APP的技术探讨和实践演示
前言:开发iOS的朋友都知道,在功能开发完成后,我们就会用申请的苹果账号在后台做证书配置,然后提交到AppStore,但是也有部分APP我们不需要提交到AppStore,比如内部测试用的APP.定制给 ...
- Jersey实现跨服务器上传图片:UniformInterfaceException:403 Forbidden
jersey.api.client.UniformInterfaceException :returned a response status of 403 Forbidden 图片服务器:端口808 ...
- 多测师讲解接口测试 _windows中搭建环境cms_高级讲师肖sir
eclipse集成开发环境 搭建开发环境需要安装的工具如下 jdk-8u60-windows-x64.exe jdk eclipse.rar 集成开发框架 mysql-inst ...
- docker 和 k8s 调研总结
一. docker简介 环境配置 软件开发最大的麻烦事之一,就是环境配置.用户计算机的环境都不相同,你怎么知道自家的软件,能在那些机器跑起来? 用户必须保证两件事:操作系统的设置,各种库和组件的安装. ...
- swoole协程通道channel
swoole 协程通道 为了协程直接互相通讯传递数据 和go的通道很相似 Co\run(function(){ $chan = new Swoole\Coroutine\Channel(1); Swo ...
- python操作excel xlwt (转)
Python中xlrd和xlwt模块使用方法 阅读目录 安装 xlrd模块使用 xlwt模块 xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入. 回到顶部 安装 ? ...
- CentOS7防止root密码被破解
破解root密码 为了防止服务器被破坏,为了守护业务的和平,在服务器安全方面,首先我们要做到密码的安全.那么知道如何破解root密码才能让我们有针对性的防护.另外如果我们忘掉了root密码,也能知道如 ...
- 数组列表(ArrayList)
2020-10-20 longzqa@163.com stronglzq [摘要]针对数组容量固定无法扩展的问题,引入数组列表(ArrayList).主要对数组列表的声明及 ...