我已经将jQuery Panzoom添加到了我的项目中。我正在全屏显示图像,我想让用户能够在iOS设备上放大该图片。平移有效,但变焦无效,我也不知道为什么。启用设备模拟后,它在Chrome调试监视器中也不起作用。
即使使用演示,捏缩放似乎也不起作用。插件坏了,还是我很笨?
https://github.com/timmywil/panzoom
我正在创建动态包含图像的div。
zoomThumb: function (d, e) {
let $imgPopup = $('<div>').addClass('fullScreenImage').appendTo($('body')).fadeIn();
let $panzoom = $('<img>').attr('src', d.src.replace('Thumb/', '')).appendTo($imgPopup);
$panzoom.panzoom({ disableZoom: false});
// Mouse wheel zoom
$imgPopup.on('mousewheel.focal', function (e) {
e.preventDefault();
var delta = e.delta || e.originalEvent.wheelDelta;
var zoomOut = delta ? delta < 0 : e.originalEvent.deltaY > 0;
$panzoom.panzoom('zoom', zoomOut, {
animate: false,
focal: e
});
});
// Close button
$('<div>').append($('<i>').addClass('fa').addClass('fa-times')).appendTo($imgPopup).click(function () {
$imgPopup.fadeOut({ done: () => { $imgPopup.remove(); } });
});
e.stopPropagation();
}
.fullScreenImage {
position: fixed;
z-index: 1;
padding-top: 100px;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgb(0,0,0);
background-color: rgba(0,0,0,0.8);
display: none;
}
.fullScreenImage > img {
margin: auto;
display: block;
width: 80%;
}
.fullScreenImage > div {
position: absolute;
top: 15px;
right: 35px;
color: #f1f1f1;
font-size: 40px;
font-weight: bold;
transition: 0.3s;
}
.fullScreenImage > div:hover,
.fullScreenImage > div:focus {
color: #bbb;
text-decoration: none;
cursor: pointer;
}
您知道如何解决该问题吗?
答案 0 :(得分:0)
在我的项目中,我需要禁用平移事件,并且捏和鼠标滚轮事件不起作用。但是,如果您查看此示例,则可以独立启用它。
https://timmywil.com/panzoom/demo/
const panzoom = Panzoom(elem)
const parent = elem.parentElement
// No function bind needed
parent.addEventListener('wheel', panzoom.zoomWithWheel)
// This demo binds to shift + wheel
parent.addEventListener('wheel', function(event) {
if (!event.shiftKey) return
panzoom.zoomWithWheel(event)
})
对我来说,这种方法有效。 希望对您有所帮助。