• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
_小女人
博客园    首页    新随笔    联系   管理    订阅  订阅

放大镜

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
* {
margin: 0;
padding: 0;
}

.box {
width: 350px;
height: 350px;
margin: 100px;
border: 1px solid #ccc;
position: relative;
}

.big {
width: 400px;
height: 400px;
position: absolute;
top: 0;
left: 360px;
border: 1px solid #ccc;
overflow: hidden;
display: none;
}

.mask {
width: 175px;
height: 175px;
background: rgba(255, 255, 0, 0.4);
position: absolute;
top: 0;
left: 0;
cursor: move;
display: none;
}

.small {
position: relative;
}
</style>
</head>
<body>
<div class="box" id="box">
<div class="small">
<img src="images/001.jpg" width="350" alt=""/>

<div class="mask"></div>
</div>
<div class="big">
<img src="images/0001.jpg" width="800" alt=""/>
</div>
</div>
</body>
</html>
<script>
//获取元素
var box = document.getElementById("box");
var small = box.children[0];
var mask = small.children[1];
var big = box.children[1];
var bigImg = big.children[0];
//alert(box.offsetLeft);

//鼠标经过small盒子 显示遮罩和大盒子 鼠标离开small盒子 隐藏遮罩和大盒子
small.onmouseover = function () {
mask.style.display = "block";
big.style.display = "block";
}
small.onmouseout = function () {
mask.style.display = "none";
big.style.display = "none";
}

//鼠标在small盒子上移动 mask跟随
small.onmousemove = function (event) {
var event = event || window.event;
//鼠标在页面上的座标
var pageX = event.pageX || event.clientX + document.documentElement.scrollLeft;
var pageY = event.pageY || event.clientY + document.documentElement.scrollTop;

//盒子的位置
var boxX = box.offsetLeft;
var boxY = box.offsetTop;

//鼠标在盒子中的位置
var mouseX = pageX - boxX;
var mouseY = pageY - boxY;

//mask应该在的位置
var maskX = mouseX - mask.offsetWidth / 2;
var maskY = mouseY - mask.offsetHeight / 2;


if (maskX < 0) {
maskX = 0;
}
if (maskX > small.offsetWidth - mask.offsetWidth) {
maskX = small.offsetWidth - mask.offsetWidth;
}
if (maskY < 0) {
maskY = 0;
}
if (maskY > small.offsetHeight - mask.offsetHeight) {
maskY = small.offsetHeight - mask.offsetHeight;
}

console.log("maskX: " + maskX + "maskY: " + maskY);

//mask的位置进行设定
mask.style.left = maskX + "px";
mask.style.top = maskY + "px";

//大图 在 大盒子 里移动的距离 / 遮罩 在 小图 里移动的距离
var bigImgToMove = bigImg.offsetWidth - big.offsetWidth;
var maskToMove = small.offsetWidth - mask.offsetWidth;

var bili = bigImgToMove / maskToMove;

bigImg.style.marginLeft = -bili * maskX + "px";
bigImg.style.marginTop = -bili * maskY + "px";


}


</script>

 

posted @ 2016-04-25 14:45  _小女人  阅读(132)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3