实现图片模拟放大镜特效插
<img src="image.jpg" class="magnifier">
.magnifier {
width: 200px;
height: 200px;
}
.magnifier-lens {
position: absolute;
border: 1px solid #000;
/* 其他样式,如大小、圆角等 */
}
(function ($) {
$.fn.magnifier = function (options) {
var defaults = {
lensSize: 100,
zoom: 2
};
var settings = $.extend({}, defaults, options);
return this.each(function() {
var $this = $(this);
var lens = $('<div class="magnifier-lens"></div>').appendTo('body');
var img = new Image();
img.src = $this.attr('src');
$(this).mousemove(function(e) {
lens.css({
left: e.pageX - settings.lensSize / 2,
top: e.pageY - settings.lensSize / 2
});
/* 计算放大镜中显示的区域 */
var rect = $this.offset();
var dx = e.pageX - rect.left;
var dy = e.pageY - rect.top;
lens.css({
background: 'url(' + img.src + ') no-repeat',
backgroundSize: img.width * settings.zoom + 'px ' + img.height * settings.zoom + 'px',
backgroundPosition: '-' + (dx * settings.zoom) + 'px -' + (dy * settings.zoom) + 'px'
});
});
});
};
})(jQuery);
// 初始化插件
$('.magnifier').magnifier();
<img src="image.jpg" class="magnifier" data-lens-size="150" data-zoom="3">
JavaScript
$('.magnifier').magnifier({
lensSize: 150,
zoom: 3
});
通过以上步骤,我们实现了一个简单的图片放大镜插件。你可以根据实际需求进行扩展和定制,打造出更加符合你项目风格的放大镜效果。
想了解更多关于jQuery图片放大镜插件的实现,欢迎提出您的问题。
我将竭诚为您解答。
温馨提示:
示例扩展:添加动画效果
JavaScript
lens.css({
opacity: 0
}).animate({
opacity: 1
}, 200);
示例扩展:触摸事件支持
JavaScript
$(this).on('touchmove', function(e) {
// ...
});
示例扩展:延迟加载
JavaScript
img.onload = function() {
// 图片加载完成后,初始化放大镜
};
希望以上信息对您有所帮助!