<!DOCTYPE html>
<html>
<head>
<meta charset= "UTF-8" >
<title></title>
<style>
ul{
list-style: none;
padding: 0;
}
.zoom-box{
width: 452px;
position: relative;
}
.small-box{
position: relative;
border: 1px solid #ccc;
}
.small-box img{
width: 100%;
height: 100%;
}
.small-box .square{
position: absolute;
left: 0;
top: 0;
background: yellow;
opacity: 0.5;
}
.small-box .mask{
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
}
.img-list ul::after{
clear: both;
content: '' ;
display: table;
}
.img-list ul li{
float: left;
margin: 0 10px;
padding: 6px;
}
.img-list img{
border: 2px solid transparent;
}
.img-list img.active{
border: 2px solid red;
}
.big-box{
position: absolute;
top: 0;
left: 100%;
margin-left: 2px;
border: 1px solid #cccccc;
width: 500px;
height: 500px;
overflow: hidden;
display: none;
}
.big-box img{
position: absolute;
top: 0;
left: 0;
}
</style>
</head>
<body>
<!-- 布局-->
<div><!-- 容器-->
<div><!-- 小图片容器-->
<img src= "../img/magnifier/m1.jpg" alt= "" />
<div></div><!-- 鼠标选中框-->
<div></div><!-- 鼠标悬浮位置-->
</div>
<div><!-- 图片列表-->
<ul>
<li><img src= "../img/magnifier/s1.jpg" alt= "" data-small= "../img/magnifier/m1.jpg"
data-big= "../img/magnifier/b1.jpg" /></li>
<li><img src= "../img/magnifier/s2.jpg" alt= "" data-small= "../img/magnifier/m2.jpg"
data-big= "../img/magnifier/b2.jpg" /></li>
<li><img src= "../img/magnifier/s3.jpg" alt= "" data-small= "../img/magnifier/m3.jpg"
data-big= "../img/magnifier/b3.jpg" /></li>
<li><img src= "../img/magnifier/s4.jpg" alt= "" data-small= "../img/magnifier/m4.jpg"
data-big= "../img/magnifier/b4.jpg" /></li>
<li><img src= "../img/magnifier/s5.jpg" alt= "" data-small= "../img/magnifier/m5.jpg"
data-big= "../img/magnifier/b5.jpg" /></li>
</ul>
</div>
<div><!-- 放大镜-->
<img src= "../img/magnifier/b1.jpg" alt= "" />
</div>
</div>
<script>
var smallbox = $( '.small-box .mask' );
var smallimg = $( '.small-box img' );
var square = $( '.square' );
var bigbox = $( '.big-box' );
var bigimg = $( '.big-box img' );
var imgs = $all( '.img-list img' );
for ( var i = 0; i < imgs.length; i++){
imgs[i].onmouseover = function (){
for ( var j = 0; j < imgs.length; j++){
imgs[j].className = '' ;
}
this .className = 'active' ;
smallimg.src = this .getAttribute( 'data-small' );
bigimg.src = this .getAttribute( 'data-big' );
};
}
smallbox.onmouseover = function (){
square.style.display = 'block' ;
bigbox.style.display = 'block' ;
square.style.width = bigbox.offsetWidth * smallimg.offsetWidth/bigimg.offsetWidth + 'px' ;
square.style.height = bigbox.offsetHeight * smallimg.offsetHeight/bigimg.offsetHeight + 'px' ;
};
smallbox.onmouseout = function (){
square.style.display = 'none' ;
bigbox.style.display = 'none' ;
};
smallbox.onmousemove = function (ev){
var oEvent = ev || event;
var x = oEvent.offsetX - square.offsetWidth/2;
var y = oEvent.offsetY - square.offsetHeight/2;
if (x < 0){
x = 0;
}
if (x > smallbox.offsetWidth - square.offsetWidth){
x = smallbox.offsetWidth - square.offsetWidth;
}
if (y < 0){
y = 0;
}
if (y > smallbox.offsetHeight - square.offsetHeight){
y = smallbox.offsetHeight - square.offsetHeight;
}
square.style.left = x + 'px' ;
square.style.top = y + 'px' ;
bigimg.style.top = -y * bigimg.offsetWidth/smallimg.offsetWidth + 'px' ;
bigimg.style.left = -x * bigimg.offsetHeight/smallimg.offsetHeight + 'px' ;
};
function $(name){
return document.querySelector(name);
}
function $all(name){
return document.querySelectorAll(name);
}
</script>
</body>
</html>
|