内容
1.鼠标移至图片上方,鼠标周围出现黄色的的正方形框,黄色矩形框会随着鼠标的移动而移动;
2将黄色正方形框里的内容的长和宽均放大2.4倍,并在图片右边进行显示。
实验原理
鼠标跟随来实现黄色方框
用display:none;和两个比例的图片来实现放大效果
代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
*{
margin: 0;
padding: 0;
}
.box{
width: 198px;
height: 178px;
position: relative;
}
.box .photo {
width: 198px;
height: 178px;
position: absolute;
}
.box .mouse{
width: 85.2px;
height: 85.2px;
background-color: yellow;
opacity: 50%;
position: absolute;
pointer-events: none;
/* 防止抖动 */
display: none;
}
.box2 {
position: absolute;
left: 198px;
top: 0px;
display: none;
}
.box2 .photo {
width: 200px;
height: 200px;
background: url(./imgs/1\(1\).jpg);
background-repeat: no-repeat;
}
</style>
<body>
<div class="box">
<img src="./imgs/1.jpg" alt="" class="picture">
<div class="mouse"></div>
</div>
<div class="box2">
<img src="" alt="" class="photo">
</div>
<script>
var box = document.querySelector('.box');
var picture = document.querySelector('.picture');
var mouse = document.querySelector('.mouse');
var box2 = document.querySelector('.box2');
var photo = document.querySelector('.photo');
//鼠标跟随
picture.onmouseover = function(){
mouse.style.display="block";
box2.style.display="block";
}
picture.onmouseout = function(){
mouse.style.display="none";
box2.style.display="none";
}
box.onmousemove = function(evt){
photo.style.display="block";
mouse.style.left = evt.offsetX + "px";
mouse.style.top = evt.offsetY + "px";
photo.style.backgroundPositionX = evt.offsetX + '%'
photo.style.backgroundPositionY = evt.offsetY + '%'
}
</script>
</body>
</html>
实验效果