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)的更多相关文章

  1. CSS3/jQuery自定义弹出窗口

    简单演示一下,精简了演示效果和css样式文件,更利于在项目中的实际应用 引入style.css   index.js <!DOCTYPE HTML PUBLIC "-//W3C//DT ...

  2. Jquery 点击图片在弹出层显示大图

    http://blog.csdn.net/wongwaidah/article/details/28432427(案例链接出处,本人只是转载收藏) <html> <head> ...

  3. jQuery Layer 弹层组件

    layer是一款近年来口碑非常不错的web弹层组件,她具备全方位的解决方案,致力于服务各个水平段的开发人员,您的页面会轻松地拥有丰富友好的操作体验. 在与同类组件的比较中,layer总是能轻易获胜.她 ...

  4. 基于Vue.js PC桌面端弹出框组件|vue自定义弹层组件|vue模态框

    vue.js构建的轻量级PC网页端交互式弹层组件VLayer. 前段时间有分享过一个vue移动端弹窗组件,今天给大家分享一个最近开发的vue pc端弹出层组件. VLayer 一款集Alert.Dia ...

  5. [转]Jquery 点击图片在弹出层显示大图

    这个还行不需要别的包! https://www.cnblogs.com/antis/p/7053991.html

  6. JQuery - 点击图片显示大图

    效果: 目录结构: 代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="De ...

  7. apicloud实现各种自定义弹层组件

  8. jQuery 鼠标移入图片 显示大图并跟随鼠标移动

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 解决: 移动端经mouseover显示出的弹层中链接点击问题

    通常我们会遇到这样的需求,导航菜单在鼠标划过的时候显示自定义弹层,在弹层中有一些链接需要点击后跳转或者其他一些事件.比如: $(".menu li").on("mouse ...

随机推荐

  1. IDEA推送docker镜像到私服/利用dockerfile-maven-plugin插件在springboot中上传镜像到远程的docker服务器、远程仓库

    利用dockerfile-maven-plugin插件在springboot中上传镜像到远程仓库      这篇文章讲解在开发工具中把打包好的jar编译成docker镜像,上传到远程的docker服务 ...

  2. 天啦噜!知道硬盘很慢,但没想到比 CPU L1 Cache 慢 10000000 倍

    前言 大家如果想自己组装电脑的话,肯定需要购买一个 CPU,但是存储器方面的设备,分类比较多,那我们肯定不能只买一种存储器,比如你除了要买内存,还要买硬盘,而针对硬盘我们还可以选择是固态硬盘还是机械硬 ...

  3. S3C6410 LCD驱动分析(转)

    一. 理论分析1. 几个概念:FIMC :    Fully Interactive Mobile Camera (完全交互式移动摄像机)FIMD:     Fully Interactive Mob ...

  4. arcgis-java-100.8.0.jar下载

    链接: https://pan.baidu.com/s/1HoW2IhPvHRw9LBZphxC5Rw 提取码: pexn

  5. CSS语法规范与代码风格

    CSS语法规范与代码风格 1. 语法规范 CSS规则又两个主要的部分构成:选择器+一条或多条声明. 选择器:用于指定CSS样式的HTML标签,花括号内的是设置的具体样式 属性与属性值以键值对的形式出现 ...

  6. Django基础之Ajax

    知识预览 Ajax前戏:json Ajax简介 Jquery实现的ajax JS实现的ajax Ajax前戏:json 什么是json? 定义: JSON(JavaScript Object Nota ...

  7. 第三十六章 Linux常用性能检测的指令

    作为一个Linux运维人员,介绍下常用的性能检测指令! 一.uptime 命令返回的信息: 19:08:17              //系统当前时间 up 127 days,  3:00     ...

  8. IL角度理解C#中字段,属性与方法的区别

    IL角度理解C#中字段,属性与方法的区别 1.字段,属性与方法的区别 字段的本质是变量,直接在类或者结构体中声明.类或者结构体中会有实例字段,静态字段等(静态字段可实现内存共享功能,比如数学上的pi就 ...

  9. 原生JS实现动态折线图

    原生JS实现动态折线图 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> & ...

  10. 微信小程序学习心得

    我们写小程序时都要跳转页面的,也会有底部导航来进行切换 这个时候就要介绍下窗口是怎样配置的 要在app.json文件里写一个tabBer对象 里面在定义一个list数组里面放我们定义的几个需要切换的页 ...