放大镜1

<!DOCTYPE html>

<html>


<head>

<meta charset="UTF-8">

<title></title>

<style type="text/css">

.min{

width: 350px;

height: 350px;

border: 1px solid black;

float: left;

position: relative;

}

.max{

width: 800px;

height: 800px;

border: 1px solid black;

float: left;

display: none;

}

.fd{

width: 150px;

height: 150px;

background-color: skyblue;

opacity: 0.3;

position: absolute;

left: 0;

top: 0;

display: none;

}

</style>

</head>


<body>

<div class="min">

<img src="img/x.jpg" />

<div class="fd"></div>

</div>

<div class="max">

<img src="img/d.jpg" />

</div>

<script type="text/javascript">

var Min = document.getElementsByClassName("min")[0];

var Max = document.getElementsByClassName("max")[0];

var FD = document.getElementsByClassName("fd")[0];

// 当鼠标移入时,让max和fd都出现

Min.onmouseover = function(){

FD.style.display = "block";

Max.style.display = "block";

}

// 当鼠标在小块里面拖着小fd移动时

Min.onmousemove = function(){

// 需要剪掉Min的offsetleft = 8;

var x = event.clientX;

var y = event.clientY;

var l = Min.offsetLeft;

var t = Min.offsetTop;

// fd移动范围,关键是边界处理

var maxX = Min.clientWidth - FD.offsetWidth;

var maxY = Min.clientHeight - FD.offsetHeight;

// 用鼠标处理左右边界

if (x <= FD.offsetWidth / 2 + l) {

x = FD.offsetWidth / 2 + l;

}else if (x >= maxX + FD.offsetWidth / 2 + l) {

x = maxX + FD.offsetWidth / 2 + l;

}

// 处理上下边界

if (y <= FD.offsetHeight / 2 + t) {

y = FD.offsetHeight / 2 + t;

}else if (y >= maxY + FD.offsetHeight / 2 + t) {

y = maxY + FD.offsetHeight / 2 + t;

}

FD.style.left = x - FD.offsetWidth / 2 - l + "px";

FD.style.top = y - FD.offsetHeight / 2 - t + "px";

}

// 当鼠标移出时,让max和fd都消失

Min.onmouseout = function(){

FD.style.display = "";

Max.style.display = "";

}

</script>

</body>


</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值