js放大镜

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8" />
	<title>放大镜</title>
</head>
<style type="text/css">
	*{
		margin:0;
		padding: 0;
		list-style: none;
	}
	.middle{
		width: 1300px;
		margin:100px auto;
	}
	.left{
		width: 580px;
		height: 340px;
		border:1px solid #ccc;
		position: relative;
		float: left;
	}
	.left img{
		width: 600px;
		height: 400px;

	}
	 .left .small{
		width: 200px;
		height: 200px;
		border:1px solid #ccc;
		position: absolute;
		top:0;
		left: 0;
		background: pink;
		opacity: 0.3;
		display:none;
		
	}
	.right{
		width: 700px;
		height: 600px;
		border:1px solid #ccc;
		position: relative;
		float: right;
		overflow: hidden;
	}
	.right img{
		position: absolute;
		width: 800px;

		
		
	}
</style>
<body>
	<div class="middle">
		<div class="left" id="zb">
			<img src="22.jpg" alt="" />
			<div class="small" id="xh"></div>
		</div>
		<div class="right"  id="yb">
			<img src="22.jpg" alt=""  / id="yt">
		</div>
	</div>
</body>
<script type="text/javascript">
	zb.onmouseover=function(){
		xh.style.display="block"
                 //当鼠标移到盒子上面。小盒子block
		yb.style.display="block"
	}         //右边的大盒子block
	zb.onmouseout=function(){
		xh.style.display="none";
                  //当鼠标移到盒子外面。小盒子为none
		yb.style.display="none"
                //当鼠标移到盒子外面。大盒子为none

	}
	xh.onmousemove=function(e){
        var e=e||event;

        var x=e.clientX-zb.offsetLeft-xh.offsetWidth/2;
           //鼠标的位置等于鼠标的最大宽-大盒子左边距离-小盒子的宽/2
        var y=e.clientY-zb.offsetTop-xh.offsetHeight/2;
            //鼠标的位置等于鼠标的最大高-大盒子上边距离-小盒子的高/2

        if(x<0){
        	x=0
        }if(y<0){
        	y=0
        }if(x>zb.offsetWidth-xh.offsetWidth){
               //大盒子的最大宽-小盒子的可见宽就是xh能移动的最大位置
        	x=zb.offsetWidth-xh.offsetWidth
        }if(y>zb.offsetHeight-xh.offsetHeight){
        	y=zb.offsetHeight-xh.offsetHeight
               //大盒子的高度-小盒子的高度就是xh能移动的最大位置
        }
        xh.style.left=x+"px";
        xh.style.top=y+"px";
           
         yt.style.left=-x*1+"px";
         yt.style.top=-y*1+"px";
	}
</script>
</html>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值