对于现在遇到此问题的任何人,preventDefaultSwipeY
在最新版本 4.2.15 (4.2.1d) 中不再工作,请参阅https://github.com/stevenwanderski/bxslider-4/issues/1235#issuecomment-465623162
正如作者所说,您需要从此修复第 371 行:
for (i = 1; i <= slider.settings.maxSlides - 1; i++) {
对此:
for (var i = 1; i <= slider.settings.maxSlides - 1; i++) {
在第 1109 行评论/删除:
e.preventDefault();
并在第 1189 行更改:
if ((xMovement * 3) > yMovement && slider.settings.preventDefaultSwipeX) {
e.preventDefault();
// y axis swipe
} else if ((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY) {
e.preventDefault();
}
if (e.type !== 'touchmove') {
e.preventDefault();
}
对此:
if ((xMovement * 3) > yMovement && slider.settings.preventDefaultSwipeX) {
if(e.hasOwnProperty('cancelable') && e.cancelable) {
e.preventDefault();
}
// y axis swipe
} else if ((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY) {
if(e.hasOwnProperty('cancelable') && e.cancelable) {
e.preventDefault();
}
}
if (e.type !== 'touchmove') {
if(e.hasOwnProperty('cancelable') && e.cancelable) {
e.preventDefault();
}
}
preventDefaultSwipeY
正如 MarthyM 在他的回答中指出的那样,不需要使用它默认设置为 false。