当前位置: 首页 > 编程笔记 >

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

轩辕欣可
2023-03-14
本文向大家介绍jQuery实现文章图片弹出放大效果,包括了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插件zoom实现图片全屏放大弹出层特效,包括了jQuery插件zoom实现图片全屏放大弹出层特效的使用技巧和注意事项,需要的朋友参考一下 1.介绍   jQuery制作zoom图片全屏放大弹出层插件。 2.使用方法   1.引入以下的js和css文件   2.在head标签中加入以下js代码 3.演示图 4.全部代码: 以上所述就是本文的全部内容了,希望大家能够喜欢。

  • 本文向大家介绍js实现点击图片在屏幕中间弹出放大效果,包括了js实现点击图片在屏幕中间弹出放大效果的使用技巧和注意事项,需要的朋友参考一下 js实现点击图片在屏幕中间弹出放大效果 效果图 点击图片后 关键代码 html js 使用方式 将以下两个文件放在同一个文件夹下,使用浏览器打开1.html 完整代码 完整1.html jquery.min.js (常规jquery包)

  • 本文向大家介绍jquery实现图片放大镜功能,包括了jquery实现图片放大镜功能的使用技巧和注意事项,需要的朋友参考一下 实现原理:   这里用到了两张图片,一张小图,一张大图。将大图设置为放大镜的背景图片,当鼠标在小图上移动时,同时控制背景大图在放大镜中的位置。两张图片大小最好是等比例的,这样才能达到最佳效果。当没有大图时,则默认为小图本身,这时由于两张图片大小一样,因此放大镜效果不明显,就跟

  • 本文向大家介绍jQuery图片特效插件Revealing实现拉伸放大,包括了jQuery图片特效插件Revealing实现拉伸放大的使用技巧和注意事项,需要的朋友参考一下 点击图片,图片拉伸放大显示,效果非常棒! 使用方法: 1、head区域引用文件 jquery.js,photorevealer.js,datouwang.css 2、在文件中加入<!-- 代码 开始 --><!-- 代码 结束

  • 本文向大家介绍jQuery实现图片文字淡入淡出效果,包括了jQuery实现图片文字淡入淡出效果的使用技巧和注意事项,需要的朋友参考一下 本实例主要讲解了jquery仿新浪微博图片文字列表上下淡进淡出间歇上下滚动效果,分享给大家供大家参考,具体内容如下 1、效果及功能说明 仿新浪微博图片文字列表上下淡进淡出间歇上下滚动 2、实现原理 首先要设定div内只能显示4个图片那么多出来的图片会自动隐藏然后在

  • 本文向大家介绍原生javascript实现图片放大镜效果,包括了原生javascript实现图片放大镜效果的使用技巧和注意事项,需要的朋友参考一下 当我们在电商网站上购买商品时,经常会看到这样一种效果,当我们把鼠标放到我们浏览的商品图片上时,会出现类似放大镜一样的一定区域的放大效果,方便消费者观察商品。今天我对这一技术,进行简单实现,实现图片放大镜效果。 我在代码中进行了代码编写的思路的说明和详细