首页
学习
活动
专区
圈层
工具
发布

jquery 移动端触摸事件

基础概念

jQuery 是一个快速、小巧且功能丰富的 JavaScript 库,它简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。在移动端,jQuery 可以用来处理触摸事件,这些事件允许开发者响应用户的触摸操作,如轻触、滑动、捏合等。

相关优势

  1. 兼容性:jQuery 兼容多种浏览器,包括旧版本的浏览器,这使得开发者不必担心不同浏览器之间的差异。
  2. 简化代码:jQuery 提供了一系列简化的方法来处理 DOM 操作和事件绑定,使得代码更加简洁易读。
  3. 丰富的插件:jQuery 社区提供了大量的插件,可以轻松实现各种功能,如轮播图、表单验证等。

类型

jQuery 支持多种触摸事件,主要包括:

  • touchstart:当手指触摸屏幕时触发。
  • touchmove:当手指在屏幕上滑动时触发。
  • touchend:当手指离开屏幕时触发。
  • touchcancel:当系统停止跟踪触摸时触发,例如触摸被中断。

应用场景

触摸事件在移动端应用中非常常见,例如:

  • 手势识别:通过滑动、捏合等手势来实现页面切换、缩放等功能。
  • 移动应用:在移动应用中,触摸事件用于实现用户与应用的交互,如点击按钮、拖动元素等。

示例代码

以下是一个简单的示例,展示了如何使用 jQuery 处理触摸事件:

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>jQuery Touch Events</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
    <div id="touchArea" style="width: 100%; height: 300px; background-color: lightblue;">
        Touch here!
    </div>

    <script>
        $(document).ready(function() {
            $('#touchArea').on('touchstart', function(event) {
                console.log('Touch started');
                event.preventDefault(); // 阻止默认行为
            });

            $('#touchArea').on('touchmove', function(event) {
                console.log('Touch moved');
                event.preventDefault();
            });

            $('#touchArea').on('touchend', function(event) {
                console.log('Touch ended');
                event.preventDefault();
            });
        });
    </script>
</body>
</html>

遇到的问题及解决方法

问题:触摸事件不触发

原因

  1. 事件绑定顺序:确保在 DOM 元素加载完成后再绑定事件。
  2. 浏览器兼容性:某些旧版本的浏览器可能不支持触摸事件。
  3. 阻止默认行为:某些触摸事件会触发浏览器的默认行为,需要使用 event.preventDefault() 阻止这些行为。

解决方法

  1. 使用 $(document).ready() 确保 DOM 加载完成后再绑定事件。
  2. 检查浏览器版本,确保其支持触摸事件。
  3. 在事件处理函数中添加 event.preventDefault() 阻止默认行为。
代码语言:txt
复制
$(document).ready(function() {
    $('#touchArea').on('touchstart', function(event) {
        console.log('Touch started');
        event.preventDefault();
    });
});

通过以上方法,可以有效地处理 jQuery 在移动端触摸事件中的常见问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【如果你要学JS XIV】—— 移动端常用事件-移动端touch触摸事件

导绪移动端浏览器兼容性较好,不需要考虑JS的兼容性问题,可以放心的使用原生JS书写效果,但是移动端也有自己独特的地方。如触屏事件touch (也称触摸事件) , Android和IOS都有。...console.log('我摸够了'); }) 2.触屏事件TouchEvent是一类描述手指在触摸平面 (触摸屏、触摸板等)的状态变化的事件。...这类事件用于描述一个或多个触点,使开发者可以检测触点的移动,触点的加和减少,等等 touchstart、touchmove、 touchend 三个事件都会各自有事件对象。...因为平时我们都是给元素注册触摸事件,所以常用targetTocuhes3.TouchEvent触摸事件对象touches 正在触摸屏幕的所有于指的列衣,targetTouches 正在触摸当前DOM元素的手指列表如果侦听的是一个...,然后用盒子原来的位置+手指移动的距离4.手指移动的距离 = 手指滑动中的位置 - 手指刚开始触摸的位置<!

2.3K00

移动端前端常见的触摸相关事件touch、tap、swipe等整理

前端的很多事件在PC端和浏览器端可公用,但有些事件却只在移动端产生,如触摸相关的事件 本文整理了移动端常见的一些事件,包括原生支持的click、touch、tap、swipe事件,也有定义型的gesture...手势事件(目前只是一个概念,使用的时候需封装模拟) 使用到的是移动端的Chrome浏览器,本文只对该浏览器进行调试,其他浏览器暂未考虑到 一、事件定义及分类 1. click事件 单击事件,类似于PC端的...click,但在移动端中,连续click的触发有200ms ~ 300ms的延迟 2. touch类事件 触摸事件,有touchstart touchmove touchend touchcancel...四种之分 touchstart:手指触摸到屏幕会触发 touchmove:当手指在屏幕上移动时,会触发 touchend:当手指离开屏幕时,会触发 touchcancel:可由系统进行的触发,比如手指触摸屏幕的时候...第三方插件监听 1) 使用jquery   为了查看三个属性的区别,简单地只监听一个事件 jquery.js"> $('.one, .two, #test'

3.5K20
  • 移动端事件详解

    关于移动端事件的一些笔记 移动端事件类型 touchstart事件 touchmove事件 touchend事件 移动端事件对象 touches 屏幕上有几个触点 targetTouches...绑定事件的元素上有几个触点 changedTouches 在屏幕上 改变(位置移动 离开 进入 )的触点的个数(如果手指离开屏幕 只有changedTouched有值 其他都没有) 获取触点坐标 clientX...不包含页面滚动的(screenX/Y有兼容性) 细节: 如果想要clientX/YpageX/Y正确的结果,要写全viewport设置,如果写不全,那么不会得到正确的结果 300ms延迟 形成原因:曾经移动端在萌芽阶段的时候...,我们把PC端的网页放到了移动端,苹果公司把PC端的网页进行了缩放,发明了一种浏览缩放网页的处理方案 ,就是双击放大,第一次点击会延迟300ms左右,然后判断,如果有第二次点击,就是放大,如果没有,就是点击...console.time(“timer”)计时器开 console.timeEnd(‘timer’)计时器关 解决方法: 写上 viewport 设置就可以了 用fastClick 移动端判断手指滑动方向

    1.5K20

    05移动端事件

    一、移动端三大事件          1、手指按下     ontouchstart      2、手指触摸     ontouchmove           3、手指抬起     ontouchend...('touchstart', function(){}); 二、PC端事件在移动端(出现的问题)      1、PC端事件在移动端略慢,大概300ms左右      2、阻止PC事件 document.addEventListener...('touchstart', function(ev){ ev.preventDefault(); }); 作用与问题:                1、移动端的点透     问题:当上层元素发生点击时...input 框不能触焦问题) txt.addEventListenr('touchstart', function(ev){ ev.stopPropagation(); }); 三、移动端事件对象...:位于当前 DOM 元素上(当前dom元素之外的无法获取)的手指的列表      3、changedTouches:涉及当前事件的手指的一个列表      例子:移动端无缝轮播切换

    1.9K50

    10-移动端开发教程-移动端事件

    在前端的移动Web开发中,有一部分事件只在移动端产生,如触摸相关的事件。接下来给大家简单总结一下移动端的事件。 1....PC端事件在移动端的兼容问题 1.1 click事件的200~300ms延迟问题 由于移动端默认的布局视口宽度是980像素,所以网页文字非常小,为了快速让网页还原到原来的大小,Safari最新引入了双击缩放功能...移动端特有的touch事件 由于移动端设备大都具备触摸功能,所以移动端浏览器都引入了触摸(touch)事件。...封装移动端tap事件 由于点击事件经常使用,如果用click会有延迟问题,一般我们会用touch事件模拟移动端的点击事件, 以下是封装的几个事件,仅供参考。...---- 参考文章: 移动端web开发---Touch事件详解 MDN:TouchEvent 移动端前端常见的触摸相关事件touch、tap、swipe等整理

    9K80

    10-移动端开发教程-移动端事件

    在前端的移动Web开发中,有一部分事件只在移动端产生,如触摸相关的事件。接下来给大家简单总结一下移动端的事件。 1....PC端事件在移动端的兼容问题 1.1 click事件的200~300ms延迟问题 由于移动端默认的布局视口宽度是980像素,所以网页文字非常小,为了快速让网页还原到原来的大小,Safari最新引入了双击缩放功能...移动端特有的touch事件 由于移动端设备大都具备触摸功能,所以移动端浏览器都引入了触摸(touch)事件。...封装移动端tap事件 由于点击事件经常使用,如果用click会有延迟问题,一般我们会用touch事件模拟移动端的点击事件, 以下是封装的几个事件,仅供参考。...---- 参考文章: 移动端web开发---Touch事件详解 MDN:TouchEvent 移动端前端常见的触摸相关事件touch、tap、swipe等整理

    8.2K70

    【移动端】touch事件及穿透事件

    苹果的解决方案: 方案一:双指进行缩放 方案二:在屏幕上双击进行放大(单击300ms后,再单击才算双击),造成了,移动端点击事件,300ms 延迟的问题 解决方案,就是使用touch事件来替代 移动端新增...touch事件 --- 只能使用现代事件进行添加 touchstart: 触摸开始 touchmove: 触摸移动 touchend: 触摸结束 touchcancel:touch 取消,如来电等...【扩展】:移动端touch、click、tap的区别 http://t.zoukankan.com/luo1240465012-p-9450627.html 添加touch 事件 代码如下: 触摸的元素,e.target都是开始时触摸的元素dom....点击穿透现象的情况: 1) 蒙层问题 蒙层的关闭按钮绑定的是touch事件,而按钮下面元素绑定的是click事件,touch事件触发后,蒙层消失,300ms后这个点的click事件触发。

    2.9K10

    js移动端中touch事件

    触摸事件是在移动设备(如智能手机或平板电脑)上查看页面时触发的事件。 它们允许您跟踪多点触摸事件。...我们有4个触摸事件: touchstart 触摸事件已经启动(触摸表面) touchend 一个触摸事件已经结束(表面不再被触摸) touchmove 触摸移动手指(或任何接触设备的东西)在表面移动 touchcancel...触摸事件已被取消 每当一个触摸事件发生,会触发一个触摸事件: const link = document.getElementById('my-link') link.addEventListener...('touchstart', event => { // touch event started }) 以下是我们可以访问该事件的所有属性: identifier 标识符此特定事件的唯一标识符。...用于跟踪多点触摸事件。相同的手指=相同的标识符。

    11.2K20

    「移动端」touch事件,touchEvent对象

    区别有: PC 端一个电脑只能有一个鼠标,而移动端有多点触摸。...PC 端添加效果使用 mouseup、mousedown、mousemove,而移动端使用的 touchstart、touchmove、touchend 。...一、touch事件类型 touchstart - 手指触摸屏幕,在元素上按下时触发 touchmove - 手指移动,在元素上按下之后屏幕上任意移动 tounchend - 手指在元素上按下之后,屏幕任意位置抬起时触发...touch:事件只能在移动端使用,mouse :事件只能在 PC 端使用。 touchstart: 只能在绑定元素内按下触发,touchmove、touchend可以在屏幕的任意位置执行。...多点触发:多个手指同时触摸屏幕,进行旋转、缩放、放大、拖拽等操作。 很多情况下,触摸事件跟鼠标事件会同时触发,目的是为了在pc端运行的时候,没有触摸设备可以使用鼠标代替。

    1.8K30

    「移动端」touch事件,touchEvent对象

    区别有: PC 端一个电脑只能有一个鼠标,而移动端有多点触摸。...PC 端添加效果使用 mouseup、mousedown、mousemove,而移动端使用的 touchstart、touchmove、touchend 。...一、touch事件类型 touchstart - 手指触摸屏幕,在元素上按下时触发 touchmove - 手指移动,在元素上按下之后屏幕上任意移动 tounchend - 手指在元素上按下之后,屏幕任意位置抬起时触发...touch:事件只能在移动端使用,mouse :事件只能在 PC 端使用。 touchstart: 只能在绑定元素内按下触发,touchmove、touchend可以在屏幕的任意位置执行。...多点触发:多个手指同时触摸屏幕,进行旋转、缩放、放大、拖拽等操作。 很多情况下,触摸事件跟鼠标事件会同时触发,目的是为了在pc端运行的时候,没有触摸设备可以使用鼠标代替。

    1.6K30

    「移动端」touch事件,touchEvent对象

    区别有: PC 端一个电脑只能有一个鼠标,而移动端有多点触摸。...PC 端添加效果使用 mouseup、mousedown、mousemove,而移动端使用的 touchstart、touchmove、touchend 。...一、touch事件类型 touchstart - 手指触摸屏幕,在元素上按下时触发 touchmove - 手指移动,在元素上按下之后屏幕上任意移动 tounchend - 手指在元素上按下之后,屏幕任意位置抬起时触发...touch:事件只能在移动端使用,mouse :事件只能在 PC 端使用。 touchstart: 只能在绑定元素内按下触发,touchmove、touchend可以在屏幕的任意位置执行。...多点触发:多个手指同时触摸屏幕,进行旋转、缩放、放大、拖拽等操作。 很多情况下,触摸事件跟鼠标事件会同时触发,目的是为了在pc端运行的时候,没有触摸设备可以使用鼠标代替。

    4K20

    移动端的touch事件处理

    在iPhone 3Gs发布的时候,其自带的移动Safari浏览器就提供了一些与触摸(touch)操作相关的新事件。随后,Android上的浏览器也实现了相同的事件。...关于这个事件的确切出发时间,文档中并没有具体说明,咱们只能去猜测了。触摸事件还包含下面三个用于跟踪触摸的属性       touches:表示当前跟踪的触摸操作的touch对象的数组。  ...参考文章:http://www.zhangyunling.com/235.html(touch事件简要的探讨一下移动端 touch 事件处理几个坑,以及相应的简单处理方法。...tap 事件的判定一个正确的 tap 事件应当满足一下条件:用户手指从屏幕移开时触发不能在用户移动手指时触发(防止和滚动、拖拽事件的冲突)多个手指同时触摸屏幕时不能触发不应该触发 click 事件具体实现代码可以参考...转载本站文章《移动端的touch事件处理》,请注明出处:https://www.zhoulujun.cn/html/webfront/SGML/html5/2017_0216_7950.html

    3.2K20

    第127天:移动端-获取触摸点的位置

    一、移动端轮播图滑动 1、先获取手指在轮播图元素上的滑动方向(左右) (1)手指触摸开始时记录手指所在的坐标X (2)获取界面上的轮播图容器 var $carousels=$('.carousel')...; (3)注册滑动事件 (4)变量重复赋值 (5)结束触摸的一瞬间记录最后手指所在坐标X (6)比较开始和结束的坐标大小 (7)控制精度 获取每次手指滑动的距离,当距离大于一定值时,就认为有方向变化...next':'prev'); javascript代码 1 //移动端轮播图滑动 2 3 //1、先获取手指在轮播图元素上的滑动方向(左右) 4 //手指触摸开始时记录手指所在的坐标...next':'prev'); 40 41 42 43 } 二、移动端获取触摸点的方式说明 1.touchstart事件        手指头触摸屏幕上的事件 2.touchmove...       手指头在屏幕上滑动触发的事件 3.touchend         当手指从屏幕上离开的时候触发 利用jquery配合使用方法如下: $("#demoid").bind('touchstart

    2.2K20

    WPF 从触摸消息转触摸事件

    在 WPF 程序可能因为一些坑让程序触摸失效,如果此时还可以收到系统的触摸消息,那么可以通过从触摸消息转触摸事件解决程序触摸失效但不适合所有触摸失效程序 在 WPF 的触摸代码写的不是很清真,特别是触摸到事件可能出现一些坑...因为在希沃的设备上主要是触摸屏幕,用户不会有鼠标,如果出现了初始化的过程刚好就是 USB 准备好,那么这个程序将收不到任何触摸事件 在程序启动的时候,可以通过获得触摸精度和触摸点判断当前是否存在触摸设备...Window 的 SourceInitialized 事件触发之后才能调用 创建 MessageTouchDevice 继承 TouchDevice 从 WPF 模拟触摸设备 可以知道这个类可以用来模拟触摸...,从 WPF 模拟触摸设备 找到通过封装的 Down 等方法可以转换为事件,请看代码 在 GetTouchInputInfo 方法拿到的输入的类包含了当前触摸的屏幕坐标和触摸的面积,拿到的数据其实是原有是的百分之一也就是需要除以...,需要使用相同的 TouchDevice 于是在按下和移动等需要有一个相同的实例,通过创建一个静态的字典按照触摸的 id 存放 private static readonly Dictionary

    2.1K20

    移动端是时候考虑抛弃jQuery了?

    jQuery确实非常有用,它的初衷就是为诸多浏览器提供统一的接口,避免书写各种条件语句判断当前环境 移动端已经被类似 Safari 和 Chrome 的 webkit 内核浏览器统治了,所以无需再抽象出统一的接口...反而是它庞大的体积,min版的也有90KB 现在很多人建议使用 Zeptojs 来代替,虽然它没有jQuery强大,但是压缩版只有25KB,因为 Zeptojs 拥有很多和 jQuery 一样的接口,代码编写非常方便...但是,Zepto的性能相比jQuery怎么样?...--分别打开jquery和zepto--> <!...和zepto各执行5次,结果: zepto 24 26 27 24 26 jquery 10 11 7 9 9 可以看到,jquery的速度要比zepto快一倍左右了,是否要换掉jquery,就要综合考虑了

    1.3K50
    领券