我有一个使用 Hammer.js 事件的自定义图像滑块。
我使用以下内容来创建我的“锤子”对象:
const hammerPan = new Hammer(domElement,
{
// lock vertical scrolling when panning left to right
touchAction: 'pan-y',
recognizers: [
// we don't care about vertical, but we want always to get panstart and panend
// events so we use ALL to prevent unncesessary filtering from hammerjs
[Hammer.Pan, { direction: Hammer.DIRECTION_ALL, threshold: 10 }]
]
});
滑块(像大多数滑块一样)从左向右移动,但为了避免阻止我使用的移动设备上的垂直滚动touchAction: 'pan-y'
所以我仍然可以滚动。
在 iOS 12 中,一切都运行良好 -即使我向左平移然后向上移动手指然后释放。这会触发一些垂直平移事件,但仍会以平移结束.
对于 iOS 13(我有两部手机进行比较),它不会给我最终的结果panend
事件,这样我的幻灯片就会“卡在”一半。
如果您不熟悉 RxJS 语法,请原谅,但我所需要做的就是显式添加pancancel
event.
const panUnfilteredRaw$ = fromEvent<HammerInput>(hammerPan as unknown as JQueryStyleEventEmitter,
'panstart panmove panend pancancel').pipe(share());
我以前没有这个,因为要么我从某个地方复制它,要么我从来没有想过我需要它。
不确定 IOS13 是否更加挑剔(!),但如果你改变平移方向,它肯定会有不同的行为 - 所以可以说这是一个错误。
我也从检测切换到panend
to event.isFinal
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)