ios 13中的Pan事件未按预期方式运行

问题描述 投票:1回答:1

[我正在尝试修复仅在iOS13上具有水平滚动图像库的错误。我们使用的是Hammer.js,用户可以向左滑动(以获取下一张图像),但不能可靠地向右滑动(以获取上一张图像)。正如我所说的,这是Safari和Chrome上的iOS 13。

我设置了日志以检查平移事件,这就是发生的情况。

如果将手指向左拖动,则deltaX(x轴上的距离)的行为会适当-距离变为-11, -22, -41, -58, -68, -84-101, -114, -124之类的东西,然后单击下一个滑动功能。

但是,如果您向右拖动手指,则delta-X会类似于21, 27, 42, 67, 88, 102, 124, 138, 142-61。最后一个-61不会触发上一个幻灯片功能,因为它太小了(如果您的平移大于屏幕宽度的1/4,我们只会触发上一个或下一个),而且方向错误,因此偶尔滑动到上一个会触发下一张幻灯片!

我不知道那个随机最后一个数字是哪里来的。通常小于100,可以是正数或负数。而且只有在向右平移时才会发生。偶尔(每10次中的1次)我们没有得到最后一个不正确的数字并且无法正确滑动,但这很罕见,而且似乎与速度或距离无关。

代码非常简单:

mc.on('panstart', function(e) {
    //overlay stuff
});

mc.on('pan', function(e) {
    //debounced overlay stuff for prefetching the next slide
});

mc.on('panend pancancel', function(e) {

    if (Math.abs(e.deltaX) > gallery.width / 4) {

        if (e.deltaX < 0) {
            next();
        } else {
            prev();
        }
    } else {
        //do nothing
    }
});
swipe ios13 hammer.js pan hammer
1个回答
-1
投票

您是否已检查此修复程序是否适合您的情况:link

© www.soinside.com 2019 - 2024. All rights reserved.