全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

jQuery实现文章图片弹出放大效果

首先先搭写一个基本的格式:

$.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 


相关文章: 如何零基础在云服务器搭建WordPress站点?  如何选择高效响应式自助建站源码系统?  兔展官网 在线制作,怎样制作微信请帖?  如何用腾讯建站主机快速创建免费网站?  c# await 一个已经完成的Task会发生什么  如何在搬瓦工VPS快速搭建网站?  如何通过商城免费建站系统源码自定义网站主题?  如何在阿里云购买域名并搭建网站?  建站之星官网登录失败?如何快速解决?  如何生成腾讯云建站专用兑换码?  如何配置FTP站点权限与安全设置?  如何快速启动建站代理加盟业务?  如何选择网络建站服务器?高效建站必看指南  重庆网站制作公司哪家好,重庆中考招生办官方网站?  如何用狗爹虚拟主机快速搭建网站?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  如何通过.red域名打造高辨识度品牌网站?  浅析上传头像示例及其注意事项  PHP 500报错的快速解决方法  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  建站为何优先选择香港服务器?  如何在云主机快速搭建网站站点?  网站制作公司,橙子建站是合法的吗?  山东网站制作公司有哪些,山东大源集团官网?  C#如何使用XPathNavigator高效查询XML  高防服务器租用首荐平台,企业级优惠套餐快速部署  如何在服务器上配置二级域名建站?  网站制作软件有哪些,制图软件有哪些?  网站制作需要会哪些技术,建立一个网站要花费多少?  深圳网站制作案例,网页的相关名词有哪些?  如何在IIS中新建站点并配置端口与IP地址?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  宁波自助建站系统如何快速打造专业企业网站?  南平网站制作公司,2025年南平市事业单位报名时间?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  焦点电影公司作品,电影焦点结局是什么?  建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析  如何在Golang中引入测试模块_Golang测试包导入与使用实践  大连网站设计制作招聘信息,大连投诉网站有哪些?  如何解决VPS建站LNMP环境配置常见问题?  子杰智能建站系统|零代码开发与AI生成SEO优化指南  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  建站之星代理费用多少?最新价格详情介绍  孙琪峥织梦建站教程如何优化数据库安全?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  网站制作企业,网站的banner和导航栏是指什么?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  5种Android数据存储方式汇总 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。