jQuery 放大镜效果是一种常见的网页交互设计,用于在用户鼠标悬停在小图像上时显示该图像的放大版本。以下是实现这一效果的基础概念、优势、类型、应用场景以及示例代码。
放大镜效果通过在小图像上覆盖一个透明的放大层来实现。当用户将鼠标悬停在小图像上时,放大层会显示该图像的局部放大视图。
以下是一个简单的 jQuery 放大镜效果的实现示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jQuery 放大镜效果</title>
<style>
.magnify {
position: relative;
display: inline-block;
}
.large {
display: none;
position: absolute;
width: 200px;
height: 200px;
border: 1px solid #ccc;
background-repeat: no-repeat;
pointer-events: none;
}
</style>
</head>
<body>
<div class="magnify">
<img src="small-image.jpg" alt="Small Image" width="100" height="100">
<div class="large"></div>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
$('.magnify').hover(function() {
var $this = $(this);
var offset = $this.offset();
var width = $this.width();
var height = $this.height();
var largeWidth = $this.find('.large').width();
var largeHeight = $this.find('.large').height();
$this.find('.large').show().css({
backgroundImage: 'url(' + $this.find('img').attr('src') + ')',
backgroundSize: (width * 2) + 'px ' + (height * 2) + 'px',
left: offset.left + width - largeWidth / 2,
top: offset.top + height - largeHeight / 2
});
$this.mousemove(function(e) {
var x = e.pageX - offset.left;
var y = e.pageY - offset.top;
var bgPosX = -x * 2 + largeWidth / 2;
var bgPosY = -y * 2 + largeHeight / 2;
$this.find('.large').css({
backgroundPosition: bgPosX + 'px ' + bgPosY + 'px'
});
});
}, function() {
$(this).find('.large').hide();
});
});
</script>
</body>
</html>
.magnify
:设置容器为相对定位。.large
:设置放大层为绝对定位,并初始隐藏。通过这种方式,可以实现一个简单的 jQuery 放大镜效果,提升用户体验和页面交互性。
微搭低代码系列直播课
微搭低代码直播互动专栏
微搭低代码直播互动专栏
算力即生产力系列直播
Lowcode Talk
微搭低代码直播互动专栏
微搭低代码直播互动专栏
微搭低代码直播互动专栏
“中小企业”在线学堂
双11音视频系列直播
企业创新在线学堂
领取专属 10元无门槛券
手把手带您无忧上云