js_图片放大镜

使用JavaScript语法对鼠标经过的地方进行放大处理,它和上一篇截图一样都用到了clip:rect(top right bottom left);具体代码如下:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>js_放大镜</title>
<script>
   var img1,img2,dd;
   window.onload = function() {
	    img1 = document.getElementById("img1");
		img2 = document.getElementById("img2");
		dd = document.getElementById("dd");
		img1.addEventListener("mousemove",function() {
			dd.style.display = "";
			var mouseX = event.clientX;
			var mouseY = event.clientY;
			dd.style.left = mouseX-50 + "px";
			dd.style.top = mouseY-50 + "px";
			var rtop = mouseY-10-50;
			var rleft = mouseX- 10 -50;
			var rwidth = rleft+100;
			var rheight = rtop+100;
			img2.style.clip = "rect("+rtop+"px "+rwidth+"px "+rheight+"px "+rleft+"px)";
			img2.style.zoom = 2;
			img2.style.left = (600-2*mouseX)/2+100+"px";
			img2.style.top = 10-mouseY + 60+"px";
			/*
			clip:rect(top right bottom left);
	        所得到的图片的高度为(bottom-top),宽度为(left-right)
			放大4倍
			img2.style.zoom = 4;
			img2.style.left = (600-4*mouseX)/4+100+"px";
			img2.style.top = 10-mouseY + 60+"px";
			*/
		},true);
		img1.addEventListener("mouseout",function() {
			dd.style.display = "none";
		},true);
   }
</script>
<style>
   #img1 {
	   position:absolute;
	   left:10px;
	   top:10px;  
   }
   #img2 {
	   position:absolute;
	   right:10px;
	   top:10px; 
   }
   #dd {
	   position:absolute;
	   left:10px;
	   top:10px;
	   width:100px;
	   height:100px;
	   border:1px solid blue; 
   }
</style>
</head>

<body>
<div id="a">
   <img id="img1" src="2.2.png">
   <img id="img2" src="2.2.png">
   <div id="dd">
</div>
</body>
</html>
虽然放大的效果实现了,但仍存在许多不足之处,望多多指教。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值