<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
{
padding: 0;
margin: 0;
}
li{
list-style: none;
}
#wrap{
position: relative;
/overflow: hidden;/
}
#min{
float: left;
width: 400px;
height: 500px;
}
#viewBox{
position: absolute;
left: 0;
top: 0;
width: 400px;
height: 400px;
border: solid 1px black;
box-sizing: border-box;
overflow: hidden;
}
#viewBox li img{
width: 400px;
height: 400px;
}
#photo{
position: absolute;
left: 0;
top: 400px;
height: 100px;
}
#photo li{
width: 80px;
height: 80px;
box-sizing: border-box;
margin: 10px;
float: left;
}
#photo li img{
width: 100%;
height: 100%;
}
#max{
position: absolute;
left: 450px;
width: 400px;
height: 400px;
overflow: hidden;
border: solid 1px black;
box-sizing: border-box;
float: left;
list-style: none;
display: none;
}
#max li{
position: absolute;
/left: 0;/
/top: 0;/
width: 800px;
height: 800px;
display: none;
}
#max li img{
/position: absolute;*/
width: 800px;
height: 800px;
}
#slider{
position: absolute;
left: 0;
top: 0;
width: 200px;
height: 200px;
background: #CCCCCC;
opacity: 0.7;
display: none;
}
</style>
</head>
<body>
<div id="wrap">
<div id="min">
<ul id="viewBox">
<li><img src="img/Z.jpg" alt="" /></li>
<li><img src="img/Z1.jpg" alt="" /></li>
<li><img src="img/Z3.jpg" alt="" /></li>
<li><img src="img/Z4.jpg" alt="" /></li>
<div id="slider"></div>
</ul>
<ul id="photo">
<li style="border: solid 1px red;"><img src="img/Z.jpg" alt="" /></li>
<li><img src="img/Z1.jpg" alt="" /></li>
<li><img src="img/Z3.jpg" alt="" /></li>
<li><img src="img/Z4.jpg" alt="" /></li>
</ul>
</div>
<ul id="max">
<li><img src="img/Z.jpg" alt="" /></li>
<li><img src="img/Z1.jpg" alt="" /></li>
<li><img src="img/Z3.jpg" alt="" /></li>
<li><img src="img/Z4.jpg" alt="" /></li>
</ul>
</div>
</body>
<script type="text/javascript">
var viewBox = document.getElementById("viewBox");
var viewBoxLi = viewBox.getElementsByTagName('li');
var photo = document.getElementById("photo");
var photoLi = photo.getElementsByTagName('li');
var slider = document.getElementById("slider");
var max = document.getElementById("max");
var maxLi = max.getElementsByTagName('li');
var num = 0;
maxLi[0].style.display = 'block';
//tab切换
for(var i = 0; i < photoLi.length; i ++){
photoLi[i].index = i;
photoLi[i].onmouseover = function(){
for(var i = 0; i < viewBoxLi.length; i ++){
viewBoxLi[i].style.display = 'none';
maxLi[i].style.display = 'none';
photoLi[i].style.border = '';
}
num = this.index;
viewBoxLi[this.index].style.display = 'block';
photoLi[this.index].style.border = 'solid 1px red';
maxLi[this.index].style.display = 'block';
}
}
//放大镜
viewBox.onmousemove = function(ev){
// console.log(num);
var e = ev || window.event;
slider.style.display = 'block';
max.style.display = 'block';
//slider随着鼠标的移动而移动
var x = e.clientX - slider.offsetWidth / 2 - viewBox.offsetLeft;
var y = e.clientY - slider.offsetHeight / 2 - viewBox.offsetTop;
if(x < 0){
x = 0;
}else if(x > viewBox.offsetWidth - slider.offsetWidth){
x = viewBox.offsetWidth - slider.offsetWidth;
}
if(y < 0){
y = 0;
}else if(y > viewBox.offsetHeight - slider.offsetHeight){
y = viewBox.offsetHeight - slider.offsetHeight;
}
slider.style.left = x + 'px';
slider.style.top = y + 'px';
//大图随着slider位置的改变而显示不同的区域
var scaleX = x / (viewBox.offsetWidth - slider.offsetWidth);
var scaleY = y / (viewBox.offsetHeight - slider.offsetHeight);
console.log(maxLi[num].offsetWidth);
maxLi[num].style.left = - scaleX * (maxLi[num].offsetWidth - max.offsetWidth) + 'px';
maxLi[num].style.top = - scaleY * (maxLi[num].offsetWidth - max.offsetHeight) + 'px';
}
viewBox.onmouseleave = function(){
slider.style.display = "none";
max.style.display = "none";
}
</script>
</html>
网友评论