在好例子网,分享、交流、成长!
您当前所在位置:首页js 开发实例常用JavaScript方法 → JS实现放大镜效果

JS实现放大镜效果

常用JavaScript方法

下载此实例
  • 开发语言:js
  • 实例大小:0.93M
  • 下载次数:29
  • 浏览次数:598
  • 发布时间:2018-06-04
  • 实例类别:常用JavaScript方法
  • 发 布 人:1547151504
  • 文件格式:.rar
  • 所需积分:2
 相关标签: 放大镜 放大 js

实例介绍

【实例简介】
【实例截图】


from clipboard


【核心代码】

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>JS实现放大镜查看大图效果</title>
  <style>
 *{
                                  margin:0;
				                 padding:0;
    }
    #product{
				         position:relative;
				                width:100%;
			                  height:640px;
	}
    .mid-box{
	                     position:absolute; 
					              top:10px;
		                         left:10px;
		                        float:left;
			                   width:350px;
			                  height:449px;	           
                  border:1px solid #747474;
                         text-align:center;
		             vertical-align:middle;
			                     z-index:5;
	}
	.mid-box  >  img{
	                     position:absolute;
		                             top:0;
		                            left:0;
	}
	.mid-box  .move-slider{
		                      display:none;
		                 position:absolute;
					                 top:0;
					             left:-50%;
					           width:175px;
		                        height:50%;
	 background-color:rgba(234,218,147,.6);
	                           cursor:move;
			                    z-index:10;

	}
    .small-box{
	                     position:absolute;	 
		                         left:20px;
		                      bottom:113px;
			                   width:380px;
			                   height:64px;
	}
	.small-box li{
	                  list-style-type:none;
			                    float:left;
			                   height:64px;
		                  margin-right:6px;
					
	}
	.small-box li.on{
	                  border:1px solid red;
	}
	.big-box{
	                          display:none;
		                 position:absolute;
				                  top:10px;
		                        left:368px;
		                        float:left;
		                   overflow:hidden;
		                       width:400px;
		                      height:513px;		       		       
                  border:1px solid #747474;
                                 z-index:5;
	}
   .big-box  .bigImg{
                         position:relative;
				                   top:0px;
			                   	  left:0px;
	    
	}
  </style>
  <script type="text/javascript">
   window.onload=function(){
         var productBox=document.getElementById("product");
		 var midBox=productBox.getElementsByClassName("mid-box")[0];
		 var bigBox=productBox.getElementsByClassName("big-box")[0];
		 var moveSlider=productBox.getElementsByClassName("move-slider")[0];
		 var midImg=productBox.getElementsByTagName("img")[0];
		 var smallImg=productBox.getElementsByTagName("li");
		 var bigImg=productBox.getElementsByClassName("bigImg")[0];

		  for(var i=0;i<smallImg.length;i  ){
            smallImg[i].onmouseover=function(){
                for(var j=0;j<smallImg.length;j  ){
                    smallImg[j].className='';
                }
                   this.className='on';
				   midImg.src=this.getAttribute('data-mid');
                   bigImg.src= this.getAttribute('data-big');
 
            }
          }

		 midBox.onmouseenter=function(){		 
		        moveSlider.style.display="block"; 
				    bigBox.style.display="block"; 
		 }
	     midBox.onmouseleave=function(){		 
		         moveSlider.style.display="none"; 
				     bigBox.style.display="none"; 
		 }
		 function pos(e){
		              var scrollTop=document.documentElement.scrollTop || document.body.scrollTop;
					  var scrollLeft=document.documentElement.scrollLeft  || document.body.scrollLeft;
					  return json={x:scrollLeft e.clientX,y:scrollTop e.clientY};
		 }
		  midBox.onmousemove=function(e){
			  var e=e || event;//事件源的兼容问题   
			  var midBox_top=midBox.offsetTop;
			  var midBox_left=midBox.offsetLeft;
		             var disX=pos(e).x-midBox_left;
			         var disY=pos(e).y-midBox_top;			 
			  var move_top=disY-moveSlider.offsetHeight/2;
			  var move_left=disX-moveSlider.offsetWidth/2;
			  var max_top=midBox.offsetHeight-moveSlider.offsetHeight;
			  var max_left=midBox.offsetWidth-moveSlider.offsetWidth;
			  var bigmax_top=bigImg.offsetHeight-bigBox.offsetHeight;
			  var bigmax_left=bigImg.offsetWidth-bigBox.offsetWidth;
			      move_top=move_top<=0 ? 0 : move_top;
				  move_top=move_top>=max_top ? max_top : move_top;
			      move_left=move_left<=0 ? 0 : move_left;
				  move_left=move_left>=max_left ? max_left : move_left;        
				  moveSlider.style.top=move_top 'px';
			      moveSlider.style.left=move_left 'px';
			  var scaleX=move_left/max_left;
			  var scaleY=move_top/max_top;
			  var bigimg_top=bigmax_top*scaleY;
			  var bigimg_left=bigmax_left*scaleX;
                   bigImg.style.top=-bigimg_top 'px';
				   bigImg.style.left=-bigimg_left 'px';
		 }
   }
  </script>
 </head>
 <body>
  <div id="product">
       <!--中图区域-->
       <div class="mid-box">
	          <img src="images/mid1.jpg" alt="" width="100%" height="100%">
	          <div class="move-slider"></div>
	   </div>
	   <!--小图区域-->
	   <div class="small-box">
	        <ul>
			   <li class="on" data-mid="images/mid1.jpg" data-big="images/big1.jpg">
			        <img src="images/small1.jpg" alt="" width="50" height="64">
			   </li>
			   <li data-mid="images/mid2.jpg" data-big="images/big2.jpg">
			        <img src="images/small2.jpg" alt="" width="50" height="64">
			   </li>
			   <li data-mid="images/mid3.jpg" data-big="images/big3.jpg">
			        <img src="images/small3.jpg" alt="" width="50" height="64">
			   </li>
			   <li data-mid="images/mid4.jpg" data-big="images/big4.jpg">
			       <img src="images/small4.jpg" alt="" width="50" height="64">
			   </li>
			   <li data-mid="images/mid5.jpg" data-big="images/big5.jpg">
			        <img src="images/small5.jpg" alt="" width="50" height="64">
			   </li>
			   <li data-mid="images/mid6.jpg" data-big="images/big6.jpg">
			        <img src="images/small6.jpg" alt="" width="50" height="64">
			   </li>
			</ul>
	   </div>
	   <!--大图区域-->
	   <div class="big-box">
	          <img class="bigImg" src="images/big1.jpg" alt="" width="800" height="1026">
	   </div>	  
  </div>
 </body>
</html>

标签: 放大镜 放大 js

实例下载地址

JS实现放大镜效果

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警