一个简单的放大镜

<script>
var box=document.getElementById("box");
var sm=box.children[0];
var lg=box.children[1];
var mask=sm.children[1];
sm.οnmοuseοver=function(){
mask.style.display = 'block';
lg.style.display = "block";
}
sm.οnmοuseleave=function(){
mask.style.display = 'none';
lg.style.display = "none";
}
sm.οnmοusemοve=function(event){
var event=event||window.event;
var pagex=event.pageX||event.clientX+scroll().left;
var pagey=event.pageY||event.clientY+scroll().top; 
var x=pagex-sm.parentNode.offsetLeft-mask.offsetWidth/2;
var y=pagey-sm.parentNode.offsetTop-mask.offsetHeight/2;
if (x<0) {
x=0;
}else if (x>sm.offsetWidth-mask.offsetWidth) {
x=sm.offsetWidth-mask.offsetWidth;
}
if (y<0) {
y=0;
}else if (y>sm.offsetHeight-mask.offsetHeight) {
y=sm.offsetHeight-mask.offsetHeight;
}


mask.style.left=x+'px';
mask.style.top=y+"px";
var lgImg=lg.children[0];
var lgx=(lgImg.offsetWidth-lg.offsetWidth)/(sm.offsetWidth-mask.offsetWidth);
console.log(lgx);
lgImg.style.marginLeft = -x*lgx+"px";
lgImg.style.marginTop = -y*lgx+"px";
}
function scroll(){
if (window.pageYOffset!=null) {
return {
left:window.pageXOffset,
top:window.pageYOffset
}
}else if (document.compatMode==="CSS1Compat") {
return {
left:document.documentElement.scrollLeft,
top:document.documentElement.scrollTop
}
}return {
left:document.body.scrollLeft,
top:document.body.scrollTop
}
}
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值