jQuery 确实保留了对触摸事件的支持,但需要了解一些重要细节。
jQuery 核心库本身不直接处理触摸事件,但可以通过事件绑定来支持触摸交互。现代浏览器已经标准化了触摸事件,jQuery 可以像处理其他事件一样处理它们。
jQuery 支持以下主要触摸事件:
touchstart
- 当手指触摸屏幕时触发touchmove
- 当手指在屏幕上移动时触发touchend
- 当手指从屏幕上抬起时触发touchcancel
- 当触摸被意外中断时触发// 基本触摸事件绑定
$('#element').on('touchstart', function(event) {
console.log('Touch started');
});
// 获取触摸点信息
$('#element').on('touchstart', function(event) {
var touch = event.originalEvent.touches[0];
console.log('Touched at: ' + touch.pageX + ', ' + touch.pageY);
});
// 同时处理触摸和鼠标事件
$('#element').on('touchstart mousedown', function(event) {
event.preventDefault();
console.log('Interaction started');
});
event.originalEvent
访问touches
数组对于纯触摸交互,可以考虑:
addEventListener
问题:触摸事件在移动设备上不触发
原因:可能是CSS的touch-action
属性被设置为none
,或者有阻止默认行为的代码
解决方案:
$('#element').on('touchstart', function(event) {
event.preventDefault(); // 谨慎使用,可能影响滚动
// 你的代码
});
jQuery的触摸事件支持足以满足基本需求,但对于复杂的触摸交互,建议考虑专门的触摸/手势库。
没有搜到相关的文章