首页 > 编程语言 > jquery自定义放大镜效果
2022
04-30

jquery自定义放大镜效果

本文实例为大家分享了jquery自定义放大镜效果的具体代码,供大家参考,具体内容如下

jquery定义插件:

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title></title>
  <script src="js/jquery3.6.0.js"></script>
  <style type="text/css">
   div{
    width: 200px;
    height: 200px;
   }
  </style>
 </head>
 <body>
  <div></div>
  <div></div>
  <script>
   // 1、jquery的插件,定义在jquery.fn的基础上的
   // 2、命名冲突的解决
   // 3、循环jquery对象中的每个元素
   // 4、在函数中,将jquery返回(this)
   
   (function($){
    $.fn.extend({
     randomColor:function(){
      // this指向的就是我们通过$选择器选取到的所有元素组成的伪数组
      function random(){
       var r=Math.floor(Math.random()*256);
       var g=Math.floor(Math.random()*256);
       var b=Math.floor(Math.random()*256);
       
       return 'rgb('+ r +','+ g +','+ b +')';
      }
      this.each(function(index){
       $(this).css({
        backgroundColor:random()
       })
      })
      return this;
     }
    })
   })(jQuery);
   $('div').randomColor();
  </script>
 </body>
</html> 

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title></title>
  
  <style type="text/css">
   *{
    margin: 0;
    padding: 0;
   }
   .magnifier .left{
    width: 240px;
    height: 150px;
    float: left;
    position: relative;
   }
   .magnifier .left img{
    width: 240px;
    height: 150px;
   }
   .magnifier .left .mask{
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    background-color: black;
    opacity: 0.4;
   }
   .magnifier .float{
    width: 50px;
    height: 50px;
    background: hotpink;
    opacity: 0.5;
    position: absolute;
    left: 0;
    top: 0;
   }
   .magnifier .right{
    height: 200px;
    width: 200px;
    background-image: url(img/2.jpg) ;
    float: left;
    margin-left: 50px;
   }
  </style>
 </head>
 <body>
  
  <div class="magnifier">
   <div class="left">
    <img src="./img/2.jpg" >
    <div class="float">
     
    </div>
    <div class="mask"></div>
   </div>
   <div class="right"></div>
  </div>
  <script src="js/jquery3.6.0.js"></script>
  <script>
   (function($){
    $.fn.extend({
     magnifier:function(){
      this.each(function(){
       var that=this;
       $('.left',this).mousemove(function (evt){
        var x=evt.offsetX;
        var y=evt.offsetY;
        var float=$('.float',this);
        
        x=x-float.width/2;
        y=y-float.height/2;
        
        if(x<0){
         x=0;
        }
        if(y<0){
         y=0;
        }
        if(x > $(this).width()-float.width()){
         x = $(this).width()-float.width();
        }
        if(y > $(this).height()-float.height()){
         y = $(this).height()-float.height();
        }
        float.css({
         left:x,
         top:y
        });
        $('.right',that).css({
         backgroundPosition:x*-4+'px' + y*-4+'px'
        })
       }).mouseover(function(){
        
       }).mouseout(function(){
        
       })
      });
     }
    })
   })(jQuery)
   $('.magnifier').magnifier();
  </script>
 </body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学编程网。

编程技巧