首先先搭写一个基本的格式:
$.fn.popImg = function() {
//your code goes here
}
然后用自调用匿名函数包裹你的代码,将系统变量以变量形式传递到插件内部,如下:
;(function($,window,document,undefined){
$.fn.popImg = function() {
//your code goes here
}
})(jQuery,window,document);
那么接下来我们就在里面实现点击文章图片弹出该图片并放大的效果。
整体代码如下:
;(function($,window,document,undefined){
$.fn.popImg = function(){
//创建弹出层
var $layer = $("<div>").css({
position:'fixed',
left:0,
right:0,
top:0,
bottom:0,
width:'100%',
height:'100%',
zIndex:9999999,
display:'none',
background: "#000",
opacity:'0.6'
});
//复制点击的图片,获得图片的宽高以及位置
var cloneImg = function($targetImg){
var cloneW = $targetImg.width(),
cloneH = $targetImg.height(),
left = $targetImg.offset().left,
top = $targetImg.offset().top;
return $targetImg.clone().css({
position:'fixed',
width:cloneW,
height:cloneH,
left:left,
top:top,
zIndex:10000000
});
};
//让复制的图片居中显示
var centerImg = function($cloneImg){
var dW = $(window).width();
var dH = $(window).height();
$cloneImg.css('cursor','zoom-out').attr('clone-bigImg',true);
var img = new Image();
img.onload = function(){
$cloneImg.stop().animate({
width: this.width,
height: this.height,
left: (dW - this.width) / 2,
top: (dH - this.height) / 2
},300);
}
img.src = $cloneImg.attr('src');
};
this.each(function(){
$(this).css('cursor','zoom-in').on('click',function(){
var $body = $("body");
$layer.appendTo($body);
$layer.fadeIn(300);
var $c = cloneImg($(this));
$c.appendTo($body);
centerImg($c);
});
});
var timer = null;
$(window).on("resize", function(){
$("img[clone-bigImg]").each(function(){
var $this = $(this);
timer && clearTimeout(timer);
timer = setTimeout(function(){
centerImg($this);
}, 10);
});
});
$(window).on("click keydown", function(evt){
if(evt.type == "keydown" && evt.keyCode === 27) {
$layer.fadeOut(300);
$("img[clone-bigImg]").remove();
}
var $this = $(evt.target);
if($this.attr("clone-bigImg")){
$layer.fadeOut(300);
$("img[clone-bigImg]").remove();
}
});
}
})(jQuery,window,document);
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# jquery
# 图片弹出放大
# jquery实现图片放大
# jquery实现图片放大镜
# jQuery实现的鼠标滑过弹出放大图片特效
# jQuery插件zoom实现图片全屏放大弹出层特效
# jQuery实现等比例缩放大图片让大图片自适应页面布局
# 用JQuery模仿淘宝的图片放大镜显示效果
# 基于jquery实现一张图片点击鼠标放大再点缩小
# 基于Jquery插件开发之图片放大镜效果(仿淘宝)
# jQuery当鼠标悬停时放大图片的效果实例
# jquery图片放大镜功能的实例代码
# 弹出
# 就在
# width
# height
# position
# left
# fixed
# bottom
# top
# opacity
# cloneImg
# cloneW
# targetImg
# zIndex
# display
# background
# css
# popImg
# fn
# code
相关文章:
建站之星如何实现网站加密操作?
C#怎么使用委托和事件 C# delegate与event编程方法
深圳网站制作培训,深圳哪些招聘网站比较好?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
Swift中循环语句中的转移语句 break 和 continue
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
重庆网站制作公司哪家好,重庆中考招生办官方网站?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
javascript中对象的定义、使用以及对象和原型链操作小结
制作门户网站的参考文献在哪,小说网站怎么建立?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
建站主机选择指南:服务器配置与SEO优化实战技巧
网站企业制作流程,用什么语言做企业网站比较好?
开源网站制作软件,开源网站什么意思?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
如何通过虚拟主机空间快速建站?
如何快速生成橙子建站落地页链接?
招商网站制作流程,网站招商广告语?
建站10G流量真的够用吗?如何应对访问高峰?
如何通过万网虚拟主机快速搭建网站?
海南网站制作公司有哪些,海口网是哪家的?
如何在腾讯云服务器快速搭建个人网站?
如何批量查询域名的建站时间记录?
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
如何制作算命网站,怎么注册算命网站?
建站之星logo尺寸如何设置最合适?
微信小程序 input输入框控件详解及实例(多种示例)
如何通过FTP服务器快速搭建网站?
建站主机功能解析:服务器选择与快速搭建指南
如何通过虚拟主机快速搭建个人网站?
如何通过.red域名打造高辨识度品牌网站?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
如何零成本快速生成个人自助网站?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
如何在万网ECS上快速搭建专属网站?
如何在景安服务器上快速搭建个人网站?
三星网站视频制作教程下载,三星w23网页如何全屏?
建设网站制作价格,怎样建立自己的公司网站?
如何获取上海专业网站定制建站电话?
建站主机如何选?性能与价格怎样平衡?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
如何通过宝塔面板实现本地网站访问?
*服务器网站为何频现安全漏洞?
建站之星如何开启自定义404页面避免用户流失?
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
手机网站制作与建设方案,手机网站如何建设?
建站之星下载版如何获取与安装?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。