【发布时间】:2022-11-19 14:50:54
【问题描述】:
我有一个 Wordpress 画廊网站,其中图像在 Bootstrap 5 Modal 中打开,这会打开 Bootstrap Carousel。
图像在带有 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);
这是该函数在 Carousel 中定位的代码:
<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";
})
【问题讨论】:
标签: php jquery wordpress bootstrap-5 bootstrap-carousel