我有一个WordPress画廊网站,其中图像在Bootstrap 5模态框中打开,该模态框打开了Bootstrap Carousel。
这些图像通过php foreach循环在帖子循环中加载,每个幻灯片一个。
我试图使用blowup.js为每个图像添加带有小圆圈的悬停放大效果。
我已经使缩放功能与每个幻灯片正确移动,但只有第一张图像跟踪鼠标所在位置。随后的放大镜卡在左上角。
这是我的函数:
这是插件中用于跟踪缩放坐标的JQuery代码:
这些图像通过php foreach循环在帖子循环中加载,每个幻灯片一个。
我试图使用blowup.js为每个图像添加带有小圆圈的悬停放大效果。
我已经使缩放功能与每个幻灯片正确移动,但只有第一张图像跟踪鼠标所在位置。随后的放大镜卡在左上角。
这是我的函数:
(function ($) {
// Update blowup when slide changes
$("#gallery-carousel").on('slide.bs.carousel', function (){
$(".img-zoom").blowup("destroy");
});
$("#gallery-carousel").on('slid.bs.carousel', function (){
$(".img-zoom").blowup()
});
})(jQuery);
这是函数针对轮播图中的代码:
<div class="carousel-item">
<div class="position-relative carousel-img">
<img class="img-fluid img-zoom" src="<?php echo $image_url; ?>" />
</div>
</div>
这是插件中用于跟踪缩放坐标的JQuery代码:
// Mouse motion on image
$element.mousemove(function (e) {
// Lens position coordinates
var lensX = e.pageX - $options.width / 2;
var lensY = e.pageY - $options.height / 2;
// Relative coordinates of image
var relX = e.pageX - $(this).offset().left;
var relY = e.pageY - $(this).offset().top;
// Zoomed image coordinates
var zoomX = -Math.floor(relX / $element.width() * (NATIVE_IMG.width * $options.scale) - $options.width / 2);
var zoomY = -Math.floor(relY / $element.height() * (NATIVE_IMG.height * $options.scale) - $options.height / 2);
var backPos = zoomX + "px " + zoomY + "px";
var backgroundSize = NATIVE_IMG.width * $options.scale + "px " + NATIVE_IMG.height * $options.scale + "px";
})