JavaScript 实现图片放大镜特效完整代码
作者:拾光时间:2026-10-23 00:42:03浏览:221
本文提供基于 jQuery 的 JavaScript 放大镜特效实现方案。通过监听鼠标在缩略图区域的移动事件,动态计算并调整遮罩层与放大区域的位置及尺寸,实现鼠标跟随的图片局部放大效果。代码包含完整的 HTML 结构、CSS 样式布局以及核心交互逻辑,适合前端开发者参考学习。
JavaScript 图片放大镜特效实现
本文分享了一套使用 JavaScript 编写的图片放大镜特效代码,供开发者参考与学习。
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
.imgBox{
width: 1000px;
margin: auto;
text-align: center;
}
.small,.large{
font-size: 0;
outline: 1px solid burlywood;
margin: auto;
}
.small{
margin: 20px auto;
}
.large{
/*display: none;*/
}
.small,.small img,.large{
width: 300px;
height: 200px;
overflow: hidden;
}
.large img{
width: 900px;
height: 600px;
}
.small,.large{
position: relative;
}
.mark{
opacity: 0.5;
background-color: #DEB887;
z-index: 55;
width: 100px;
height: 66.666666666px;
display: none;
}
.mark,.large img{
position: absolute;
left: 0;
top: 0;
}
</style>
</head>
<body>
<div class="imgBox">
<div class="small">
<img src="img/img_14.jpg"/>
<div class="mark"></div>
</div>
<div class="large">
<img src="img/img_14.jpg"/>
</div>
</div>
<script type="text/javascript">
$(function(){
var $small = $(".small"),
$mark = $(".mark"),
$large = $(".large");
$small.on("mousemove",function(e){
// 在鼠标移到小图片中显示出mark
$mark.css("display","block");
// $large.css("display","block");
// 获取mark的一半宽度高度
var hw = $mark.width()/2,
hh = $mark.height()/2;
// 获取鼠标在当前图片中的位置
var lf = e.pageX-$small.offset().left-hw,
tt = e.pageY-$small.offset().top-hh;
// 获取mark的想x,y轴偏移率
var ix = lf/$small.width(),
iy = tt/$small.height();
// 获取边缘线
var lb = 1-hw/$small.width()*2,
tb = 1-hh/$small.height()*2;
// 计算和边缘的关系
var ix = ix<lb?ix>0?ix:0:lb,
iy = iy<tb?iy>0?iy:0:tb;
// 进行大图和小图百分比计算
$mark.css("left",ix*100+"%").css("top",iy*100+"%");
$large.children().css("left",-ix*300+"%").css("top",-iy*300+"%");
}).on("mouseout",function(){
// 鼠标移出后mark隐藏
$mark.css("display","none");
// $large.css("display","none");
})
})
</script>
</body>
</html>
以上即为该特效的全部内容,希望能为读者的技术学习提供有益帮助,同时也感谢大家的支持。
作者最新文章
JS处理含Emoji或中文的字符串转数组乱码问题
2026-11-05 16:12:28
JS怎么使用展开运算符合并对象
2026-11-05 14:42:18
ES6+环境下判断JS对象为空的简洁写法
2026-11-05 12:12:23
怎么通过replacer函数自定义JS中JSON的格式化输出
2026-11-05 11:19:44
JS正则表达式基础:字面量与RegExp构造函数的区别及常用元字符
2026-11-05 11:16:58
