防止垂直触摸移动事件,但通过按钮留下水平触摸和滚动机会
Prevent vertical touchmove event, but leave horizontal touch and scroll opportunity via buttons
我有一个带有 jQuery 小部件的 iPad 应用程序。小部件可以水平和垂直滚动。我需要通过触摸事件防止垂直滚动,但留下通过按钮(如滑块)滚动的机会。
只需移除用户垂直触摸,但保留水平触摸。想法?
mainContainer.on('touchmove', function(e) {
var xStart, yStart = 0;
xStart = e.touches[0].screenX;
yStart = e.touches[0].screenY;
var xMovement = Math.abs(e.touches[0].screenX - xStart);
var yMovement = Math.abs(e.touches[0].screenY - yStart);
if (friendsList.has($(e.target)).length
|| msgContainer.has($(e.target)).length) {
if ((yMovement * 3) > xMovement) {
e.preventDefault();
}
}
});
'touchmove' 事件中的这段代码阻止用户触摸垂直滚动,但允许按原样滚动。
我有一个带有 jQuery 小部件的 iPad 应用程序。小部件可以水平和垂直滚动。我需要通过触摸事件防止垂直滚动,但留下通过按钮(如滑块)滚动的机会。
只需移除用户垂直触摸,但保留水平触摸。想法?
mainContainer.on('touchmove', function(e) {
var xStart, yStart = 0;
xStart = e.touches[0].screenX;
yStart = e.touches[0].screenY;
var xMovement = Math.abs(e.touches[0].screenX - xStart);
var yMovement = Math.abs(e.touches[0].screenY - yStart);
if (friendsList.has($(e.target)).length
|| msgContainer.has($(e.target)).length) {
if ((yMovement * 3) > xMovement) {
e.preventDefault();
}
}
});
'touchmove' 事件中的这段代码阻止用户触摸垂直滚动,但允许按原样滚动。