1效果图
在图片区域选中 左侧出现放大区域
2html
<body>
<div id="min_tu">
<img src="imgs/3.jpg" />
<div id="fdj"></div>
</div>
<div id="list">
<ul>
<li><img src="imgs/3.jpg" /></li>
<li><img src="imgs/3.jpg" /></li>
<li><img src="imgs/3.jpg" /></li>
<li><img src="imgs/3.jpg" /></li>
</ul>
</div>
<div id="max_tu">
<img id="bigPic" src="imgs/3.jpg" />
</div>
</body>
3css
<head>
<meta charset="UTF-8">
<title>放大镜2</title>
<style type="text/css">
* {
margin: 0px;
padding: 0px;
list-style: none;
}
#min_tu {
width: 400px;
height: 400px;
border: 1px solid #333;
margin: 70px 0px 0px 100px;
position: relative;
}
#min_tu>img {
width: 100%;
}
#fdj {
width: 160px;
height: 160px;
background-color: yellow;
opacity: 0.4;
position: absolute;
left: 0px;
top: 0px;
display: none;
}
#max_tu {
width: 400px;
height: 400px;
position: absolute;
top: 70px;
left: 521px;
border: 1px solid #333;
overflow: hidden;
display: none;
}
#max_tu>img {
position: absolute;
left: -500px;
}
/*设置图片列表*/
#list {
width: 400px;
height: 100px;
margin: 5px 0px 0px 100px;
border: 1px solid #333;
}
#list>ul>li {
height: 100px;
float: left;
}
#list>ul>li>img {
height: 100%;
}
</style>
</head>
4js
<script type="text/javascript">
//或取元素
//获取小图外层div
var mymin_tu = document.getElementById("min_tu");
//获取放大镜
var myfdj = document.getElementById("fdj");
//获取大图外层div
var mymax_tu = document.getElementById("max_tu");
//获取大图图片
var mybigPic = document.getElementById("bigPic");
//获取图片div集合
var mylist = document.getElementById("list");
//获取小图div的left/top
var minL = mymin_tu.offsetLeft;
var minT = mymin_tu.offsetTop;
//获取小图div的宽和高
var minW = mymin_tu.offsetWidth;
var minH = mymin_tu.offsetHeight;
//获取大图图片的宽高
var imgW = 0;
var imgH = 0;
//获取放大镜的宽高
var fdjW = 0;
var fdjH = 0;
//设置鼠标移入事件
mymin_tu.onmouseover = function() {
myfdj.style.display = "block";
mymax_tu.style.display = "block";
//获取放大镜的宽高
fdjW = myfdj.offsetWidth;
fdjH = myfdj.offsetHeight;
//获取显示后的大图的宽高
imgW = mybigPic.offsetWidth;
imgH = mybigPic.offsetHeight;
}
//设置鼠标移出事件
mymin_tu.onmouseout = function() {
myfdj.style.display = "none";
mymax_tu.style.display = "none";
}
//设置放大镜的移动
mymin_tu.onmousemove = function(e) {
var e = e || window.event;
//获取鼠标在页面中的位置
var x = e.pageX;
var y = e.pageY;
//计算放大镜最终的left居左值 和 top距顶值的值
var l = x - minL - fdjW / 2;
// console.log(l + "," + minW)
var t = y - minT - fdjH / 2;
//判断放大镜的位置
//水平或X值的临界值
var XL = minW - fdjW - 2;
var YL = minH - fdjH - 2;
//限定放大镜的移动范围
if(l >= XL) {
l = XL;
}
if(l <= 0) {
l = 0;
}
if(t >= YL) {
t = YL;
}
if(t <= 0) {
t = 0;
}
//设置left和top
myfdj.style.left = l + 'px';
myfdj.style.top = t + 'px';
var bigL = -imgW * l / minW;
// console.log()
var bigT = -imgH * t / minH;
mybigPic.style.left = bigL + "PX";
mybigPic.style.top = bigT + "PX";
}
//获取图片列表下的所有li
var myli = mylist.children[0].children;
//获取有所的图片
var len = myli.length;
for(var i = 0; i < myli.length; i++) {
myli[i].onclick = function() {
mymin_tu.children[0].src = this.children[0].src;
mybigPic.src = this.children[0].src;
}
}
</script>
5结构目录
6图片
7总结
把css、html、js放到html标签中即可