图片放大镜,可以用于商城内的商品图片查看

Posted 敲出别样人生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图片放大镜,可以用于商城内的商品图片查看相关的知识,希望对你有一定的参考价值。

  1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 <html>
  3 <head>
  4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5     <title>jQuery-放大镜
  6     </title>
  7     <script type="text/javascript" src="F:\zuoye\js\jquery.min.js">
  8     </script>
  9     <script>
 10         $(function(){
 11   var mouseX = 0;
 12   //鼠标移动的位置X
 13   var mouseY = 0;
 14   //鼠标移动的位置Y
 15   var maxLeft = 0;
 16   //最右边
 17   var maxTop = 0;
 18   //最下边
 19   var markLeft = 0;
 20   //放大镜移动的左部距离
 21   var markTop = 0;
 22   //放大镜移动的顶部距离
 23   var perX = 0;
 24   //移动的X百分比
 25   var perY = 0;
 26   //移动的Y百分比
 27   var bigLeft = 0;
 28   //大图要移动left的距离
 29   var bigTop = 0;
 30   //大图要移动top的距离
 31   //改变放大镜的位置
 32   function updataMark($mark){
 33     //通过判断,让小框只能在小图区域中移动        
 34     if(markLeft<0){
 35       markLeft = 0;
 36     }
 37     else if(markLeft>maxLeft){
 38       markLeft = maxLeft;
 39     }
 40     if(markTop<0){
 41       markTop = 0;
 42     }
 43     else if(markTop>maxTop){
 44       markTop = maxTop;
 45     }
 46     //获取放大镜的移动比例,即这个小框在区域中移动的比例
 47     //小框在移动的同时,大图也在相反的移动,具体想了解详细的动作行为,可以把css中的.boxbig中的overflow:hidden备注了,即可
 48     perX = markLeft/$(".small").outerWidth();
 49     perY = markTop/$(".small").outerHeight();
 50     bigLeft = -perX*$(".big").outerWidth();
 51     bigTop = -perY*$(".big").outerHeight();
 52     //设定小框的位置
 53     $mark.css({
 54       "left":markLeft,"top":markTop,"display":"block"}
 55              );
 56   }
 57   //改变大图的位置
 58   function updataBig(){
 59     $(".big").css({
 60       "display":"block","left":bigLeft,"top":bigTop}
 61                  );
 62   }
 63   //鼠标移出时
 64   function cancle(){
 65     $(".big").css({
 66       "display":"none"}
 67                  );
 68     $(".mark").css({
 69       "display":"none"}
 70                   );
 71   }
 72   //鼠标小图上移动时
 73   function imgMouseMove(event){
 74     var $this = $(this);
 75 
 76     //获取small下的子元素
 77     var $mark = $(this).children(".mark");
 78     //鼠标在小图的位置
 79 
 80     //event.pageX:获取鼠标相对屏幕左边的距离
 81     //$this.offset():获取smll相对屏幕左边的距离
 82     mouseX = event.pageX-$this.offset().left - $mark.outerWidth()/2;
 83     mouseY = event.pageY-$this.offset().top - $mark.outerHeight()/2;
 84     //最大值
 85     maxLeft =$this.width()- $mark.outerWidth();
 86     maxTop =$this.height()- $mark.outerHeight();
 87     markLeft = mouseX;
 88     markTop = mouseY;
 89     updataMark($mark);
 90     updataBig();
 91   }
 92   $(".small").bind("mousemove",imgMouseMove).bind("mouseleave",cancle);
 93 }
 94  )
 95 
 96     </script>
 97     <style>
 98         *{
 99   margin:0px;
100   padding:0px;
101 }
102 .box{
103   position:relative;
104   margin:10px auto;
105   padding:10px;
106   border:1px solid #666;
107   background:#CCC;
108   width:250px;
109 }
110 .box .small{
111   position:relative;
112   text-align:center;
113   background:#FFF;
114 }
115 .box .small .mark{
116   position:absolute;
117   top:0;
118   left:0;
119   z-index:2;
120   width:80px;
121   height:80px;
122   background:#FFFFFF;
123   filter:alpha(opacity:50);
124   opacity:0.5;
125   border:1px solid #333;
126   display:none;
127 }
128 .box .big{
129   position:absolute;
130   left:225px;
131   top:0;
132   display:none;
133 }
134 .boxbig{
135   position:absolute;
136   left:275px;
137   top:0;
138   width:200px;
139   height:200px;
140   overflow:hidden;
141 }
142     </style>
143 </head>
144 <body>
145     <div class="box">
146         <div class="small">
147             <span class="mark">
148             </span>
149             <img style="width:250px;height:250px;" src="F:\上课文件\完成作业\image\7.jpg" alt="" />
150         </div>
151         <div class="boxbig">
152             <div class="big">
153                 <img src="F:\上课文件\完成作业\image\7.jpg" alt="" />
154             </div>
155         </div>
156     </div>
157 </body>
158 </html>
  1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 <html>
  3 <head>
  4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5     <title>jQuery-放大镜
  6     </title>
  7     <script type="text/javascript" src="F:\zuoye\js\jquery.min.js">
  8     </script>
  9     <script>
 10         $(function(){
 11   var mouseX = 0;
 12   //鼠标移动的位置X
 13   var mouseY = 0;
 14   //鼠标移动的位置Y
 15   var maxLeft = 0;
 16   //最右边
 17   var maxTop = 0;
 18   //最下边
 19   var markLeft = 0;
 20   //放大镜移动的左部距离
 21   var markTop = 0;
 22   //放大镜移动的顶部距离
 23   var perX = 0;
 24   //移动的X百分比
 25   var perY = 0;
 26   //移动的Y百分比
 27   var bigLeft = 0;
 28   //大图要移动left的距离
 29   var bigTop = 0;
 30   //大图要移动top的距离
 31   //改变放大镜的位置
 32   function updataMark($mark){
 33     //通过判断,让小框只能在小图区域中移动        
 34     if(markLeft<0){
 35       markLeft = 0;
 36     }
 37     else if(markLeft>maxLeft){
 38       markLeft = maxLeft;
 39     }
 40     if(markTop<0){
 41       markTop = 0;
 42     }
 43     else if(markTop>maxTop){
 44       markTop = maxTop;
 45     }
 46     //获取放大镜的移动比例,即这个小框在区域中移动的比例
 47     //小框在移动的同时,大图也在相反的移动,具体想了解详细的动作行为,可以把css中的.boxbig中的overflow:hidden备注了,即可
 48     perX = markLeft/$(".small").outerWidth();
 49     perY = markTop/$(".small").outerHeight();
 50     bigLeft = -perX*$(".big").outerWidth();
 51     bigTop = -perY*$(".big").outerHeight();
 52     //设定小框的位置
 53     $mark.css({
 54       "left":markLeft,"top":markTop,"display":"block"}
 55              );
 56   }
 57   //改变大图的位置
 58   function updataBig(){
 59     $(".big").css({
 60       "display":"block","left":bigLeft,"top":bigTop}
 61                  );
 62   }
 63   //鼠标移出时
 64   function cancle(){
 65     $(".big").css({
 66       "display":"none"}
 67                  );
 68     $(".mark").css({
 69       "display":"none"}
 70                   );
 71   }
 72   //鼠标小图上移动时
 73   function imgMouseMove(event){
 74     var $this = $(this);
 75 
 76     //获取small下的子元素
 77     var $mark = $(this).children(".mark");
 78     //鼠标在小图的位置
 79 
 80     //event.pageX:获取鼠标相对屏幕左边的距离
 81     //$this.offset():获取smll相对屏幕左边的距离
 82     mouseX = event.pageX-$this.offset().left - $mark.outerWidth()/2;
 83     mouseY = event.pageY-$this.offset().top - $mark.outerHeight()/2;
 84     //最大值
 85     maxLeft =$this.width()- $mark.outerWidth();
 86     maxTop =$this.height()- $mark.outerHeight();
 87     markLeft = mouseX;
 88     markTop = mouseY;
 89     updataMark($mark);
 90     updataBig();
 91   }
 92   $(".small").bind("mousemove",imgMouseMove).bind("mouseleave",cancle);
 93 }
 94  )
 95 
 96     </script>
 97     <style>
 98         *{
 99   margin:0px;
100   padding:0px;
101 }
102 .box{
103   position:relative;
104   margin:10px auto;
105   padding:10px;
106   border:1px solid #666;
107   background:#CCC;
108   width:250px;
109 }
110 .box .small{
111   position:relative;
112   text-align:center;
113   background:#FFF;
114 }
115 .box .small .mark{
116   position:absolute;
117   top:0;
118   left:0;
119   z-index:2;
120   width:80px;
121   height:80px;
122   background:#FFFFFF;
123   filter:alpha(opacity:50);
124   opacity:0.5;
125   border:1px solid #333;
126   display:none;
127 }
128 .box .big{
129   position:absolute;
130   left:225px;
131   top:0;
132   display:none;
133 }
134 .boxbig{
135   position:absolute;
136   left:275px;
137   top:0;
138   width:200px;
139   height:200px;
140   overflow:hidden;
141 }
142     </style>
143 </head>
144 <body>
145     <div class="box">
146         <div class="small">
147             <span class="mark">
148             </span>
149             <img style="width:250px;height:250px;" src="F:\上课文件\完成作业\image\7.jpg" alt="" />
150         </div>
151         <div class="boxbig">
152             <div class="big">
153                 <img src="F:\上课文件\完成作业\image\7.jpg" alt="" />
154             </div>
155         </div>
156     </div>
157 </body>
158 </html>

 

以上是关于图片放大镜,可以用于商城内的商品图片查看的主要内容,如果未能解决你的问题,请参考以下文章

商品图片局部放大效果

通过 jQuery 实现放大镜效果

宠喵club商品页

关于jQuery中实现放大镜效果

jQuery实现仿京东商城图片放大镜

JS实现淘宝商品图片放大效果(放大镜)