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

发布时间 - 2026-01-11 00:32:35    点击率:

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

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


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 佛山网站制作系统,佛山企业变更地址网上办理步骤?  如何快速上传建站程序避免常见错误?  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  如何自定义建站之星模板颜色并下载新样式?  深圳网站制作的公司有哪些,dido官方网站?  如何利用DOS批处理实现定时关机操作详解  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  深入理解Android中的xmlns:tools属性  SQL查询语句优化的实用方法总结  海南网站制作公司有哪些,海口网是哪家的?  javascript中对象的定义、使用以及对象和原型链操作小结  Laravel如何实现模型的全局作用域?(Global Scope示例)  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  大连网站制作公司哪家好一点,大连买房网站哪个好?  Swift中循环语句中的转移语句 break 和 continue  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  Laravel Docker环境搭建教程_Laravel Sail使用指南  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  Laravel如何自定义错误页面(404, 500)?(代码示例)  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  如何快速搭建安全的FTP站点?  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  Laravel如何使用Blade组件和插槽?(Component代码示例)  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  如何快速建站并高效导出源代码?  PHP正则匹配日期和时间(时间戳转换)的实例代码  香港服务器如何优化才能显著提升网站加载速度?  香港服务器部署网站为何提示未备案?  企业网站制作这些问题要关注  如何用景安虚拟主机手机版绑定域名建站?  使用Dockerfile构建java web环境  UC浏览器如何设置启动页 UC浏览器启动页设置方法  Swift中swift中的switch 语句  如何在云指建站中生成FTP站点?  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  javascript如何操作浏览器历史记录_怎样实现无刷新导航  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  黑客入侵网站服务器的常见手法有哪些?  敲碗10年!Mac系列传将迎来「触控与联网」双革新  如何快速搭建高效简练网站?  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  如何在Tomcat中配置并部署网站项目?  如何在服务器上三步完成建站并提升流量?  如何用y主机助手快速搭建网站?  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】