首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

touch相关的事件跟普通的其他dom事件一样使用,可以直接用addEventListener来监听和处理。...2.1 touch事件与click事件同时触发 在很多情况下,触摸事件和鼠标事件会同时被触发(目的是让没有对触摸设备优化的代码仍然可以在触摸设备上正常工作)。...因为双击缩放检测的存在,在移动设备屏幕上点击操作的事件执行顺序: touchstart(瞬间触发) → touchend → click(200-300ms延迟) 如果你使用了触摸事件,可以调用 event.preventDefault...封装移动端tap事件 由于点击事件经常使用,如果用click会有延迟问题,一般我们会用touch事件模拟移动端的点击事件, 以下是封装的几个事件,仅供参考。...注意:zepto并没有阻止click事件,所以使用zepto的tap事件依然会导致点击穿透问题,你需要手动添加 e.preventDefault() 来阻止click事件。

6.8K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    手势事件(目前只是一个概念,使用的时候需封装模拟) 使用到的是移动端的Chrome浏览器,本文只对该浏览器进行调试,其他浏览器暂未考虑到 一、事件定义及分类 1. click事件 单击事件,类似于PC端的...click,但在移动端中,连续click的触发有200ms ~ 300ms的延迟 2. touch类事件 触摸事件,有touchstart touchmove touchend touchcancel...,突然alert了一下,或者系统中其他打断了touch的行为,则可以触发该事件 3. tap类事件 触碰事件,我目前还不知道它和touch的区别,一般用于代替click事件,有tap longTap singleTap...快速点两下,如图为相关事件触发的顺序,可以看到click事件因为延迟的原因只触发了一次 ? 长按,如图为相关事件触发的顺序 ? 向右滑动一下,如图为相关事件触发的顺序 ?...第三方插件监听 1) 使用jquery   为了查看三个属性的区别,简单地只监听一个事件 jquery.js"> $('.one, .two, #test'

    2.5K20

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

    touch相关的事件跟普通的其他dom事件一样使用,可以直接用addEventListener来监听和处理。...2.1 touch事件与click事件同时触发 在很多情况下,触摸事件和鼠标事件会同时被触发(目的是让没有对触摸设备优化的代码仍然可以在触摸设备上正常工作)。...因为双击缩放检测的存在,在移动设备屏幕上点击操作的事件执行顺序: touchstart(瞬间触发) → touchend → click(200-300ms延迟) 如果你使用了触摸事件,可以调用 event.preventDefault...封装移动端tap事件 由于点击事件经常使用,如果用click会有延迟问题,一般我们会用touch事件模拟移动端的点击事件, 以下是封装的几个事件,仅供参考。...注意:zepto并没有阻止click事件,所以使用zepto的tap事件依然会导致点击穿透问题,你需要手动添加 e.preventDefault() 来阻止click事件。

    6.4K70

    移动浏览器点击事件的问题

    大家都知道移动端的程序中,是没有点击事件的,只有 touchstart、touchmove、touchend。...利用jquery这样写的话,也可以,但是当你点击按钮的单击事件时,将 会等待大约300ms的时间。这是因为,浏览器是等着看,如果你是真正执 行双击。...如下代码所示,就会延时300ms: $("#sid").click(function(){ console.log(111); }); ps:在移动浏览器端,你会发现,当你点击某个区域的点击事件时...111); } }); ps:此时你在看看是否有所变化 插入点小知识: Single tap跟press的区别 single tap是按一下,就一下,按了就拿起来 press就是按,可以按一会...press就是按么, release就是松开, single tap就是按一下, double tap就是按两下, triple就是三下哈哈哈~~~ 解决方案:(2)使用

    82930

    移动端事件穿透的原理与解决方案

    产生的原因 当今,主流的移动设备一般都使用触摸屏,Web 应用程序可以使用触摸事件(Touch Events)直接处理基于触摸的输入,或者应用程序可以使用可解释的鼠标事件以处理应用程序的输入。...在很多情况下,触摸事件和鼠标事件会同时被触发(目的是让没有对触摸设备优化的代码仍然可以在触摸设备上正常工作)。...('click') }) 事件触发的先后顺序是:touchstart -> touchend -> click。...解决点击事件延迟的问题可以使用以下的 CSS 代码实现: html { touch-action: manipulation; } 这样已经很完美了。然而,什么是工作?工作就是不停的解决问题。...当然不用这么麻烦,你可以在使用 touch 事件时通过调用 preventDefault() 阻止触发 click 事件。

    1.4K20

    2017移动前端的一些总结web前端 —— 移动端知识的一些总结一.css部分二.js部分

    解决:利用 js获取文字 line-height再去设置 div高度  18.使用 background时, background-position里使用了比如 center left后不能再加具体的数值去定位...:none,意思就是此元素对鼠标事件无效 二.js部分 1.如果使用 jquery绑定 touch事件的话,获取 touchstart, touchmove的触点坐标用 e.originalEvent.targetTouches... window.onload或计时器等都不能触发播放,必须用 JS写事件让用户手动点击触发才会开始播放,比如 $(document).one('touchstart',function(){...点击一个元素时,使用 touchstart会立即触发,而使用 click则用有大概 0.3s的延迟 想模拟一个立即触发的点击事件有两种方法, fastclick.js和 zepto.js里的 tap事件...jpeg,image/gif" ,同时在 android上默认不能使用相机,可以加 capture="camera" 同时,由于原生的样式不好看,可以通过设置input的display:none,然后使用

    3.7K40

    移动端touch事件影响click事件以及在touchmove添加preventDefault导致页面无法滚动的解决方法

    为了解决开发者需要,建议开发者在touchstart时调用event.preventDefault,这样就可以保证内核会一起触发touchmove事件了。...后来突然脑袋灵光一闪,既然在touchstart中加了event.preventDefault会导致不触发click事件,那我在touchmove中加可以吧?...抱着试一试的心态,果然好了,click能顺利触发,QQ和微信中也没有问题,我以为这样就好了,但是为什么页面不能滚动了?...然后测试一下,QQ和微信中特效没有问题,click事件和a标签链接也可以顺利触发,页面滚动也没有问题。 所有问题终于解决了。。...在touchstart中如果有event.preventDefault()方法, 将不会触发click事件和a标签方法。在这里可以使用tap代替click,但是a标签的话就不太方便了。

    3.4K20

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

    结束触摸的一瞬间记录最后手指所在坐标X (6)比较开始和结束的坐标大小 (7)控制精度 获取每次手指滑动的距离,当距离大于一定值时,就认为有方向变化 2、根据获得到的方向选择上一张或下一张 必须用$(this),若使用...-':'+'); 33 34 //2、根据获得到的方向选择上一张或下一张 35 36 // $('a').click(); 37...       手指头在屏幕上滑动触发的事件 3.touchend         当手指从屏幕上离开的时候触发 利用jquery配合使用方法如下: $("#demoid").bind('touchstart...touchstart、touchmove、touchend三种事件下的鼠标位置点获取: (1)touchstart事件下获取:e.originalEvent.targetTouches[0].pageX...说明:由于手指头是多点触摸到屏幕上的我们所以e.originalEvent.targetTouches的 意思是一个手指触碰点集合我们只需要获取第一个点就可以了所以 e.originalEvent.targetTouches

    1.5K20

    前端关键技术点杂烩,这些你必须知道

    7、Node.js 主要解决了什么问题 虽然单进程、单线程,但其事件环机制、非阻塞IO,可以高效的处理高并发请求,并且与前端脚本语言统一。...标准属性在后; 9、CSS 预处理 CSS 预处理器用一种专门的编程语言,在编写 CSS 的过程中可以使用变量、循环、递归等特性,然后再编译成正常的 CSS 文件,可以提高 CSS 编写效率,常用的预编译语言有...jQuery、Knockoutjs、VueJs、AngularJs、EmberJs、ReactJs ...(很多 MVVM 框架可以使用) 13、你从jQuery学到了什么?...Gulp 基于“流”的概念,只有一次 IO 过程,类似于 Linux 里的管道,又像 jQuery 的链式调用;Gulp 更易用; 28、浏览器可以并行下载多少个资源?...34、touchstart 的点击穿透问题 因为在移动端浏览器,事件执行的顺序是 touchstart > touchend > click,而 click 事件有300ms的延迟,当 touchstart

    1.6K20

    前端开发,关键技术点杂烩

    7、Node.js 主要解决了什么问题 虽然单进程、单线程,但其事件环机制、非阻塞IO,可以高效的处理高并发请求,并且与前端脚本语言统一。...标准属性在后; 9、CSS 预处理 CSS 预处理器用一种专门的编程语言,在编写 CSS 的过程中可以使用变量、循环、递归等特性,然后再编译成正常的 CSS 文件,可以提高 CSS 编写效率,常用的预编译语言有...jQuery、Knockoutjs、VueJs、AngularJs、EmberJs、ReactJs ...(很多 MVVM 框架可以使用) 13、你从jQuery学到了什么?...Gulp 基于“流”的概念,只有一次 IO 过程,类似于 Linux 里的管道,又像 jQuery 的链式调用;Gulp 更易用; 28、浏览器可以并行下载多少个资源?...34、touchstart 的点击穿透问题 因为在移动端浏览器,事件执行的顺序是 touchstart > touchend > click,而 click 事件有300ms的延迟,当 touchstart

    1.1K30

    代码触发,手动触发touchstart事件,touch事件,click事件,自定义事件

    工作中有时候会用到需要用代码去手动触发某个事件或者是自定义事件,通常触发click事件的做法为eleme.click(),遇到touchstart就行不通了。...可以使用以下方式 // 创建事件. var event = document.createEvent('Events'); // 初始化一个点击事件,可以冒泡,无法被取消 event.initEvent...('touchstart', true, false); // 设置事件监听. elem.addEventListener('touchstart', function (e) { //...,可以使用Event构造函数 var event = new Event('touchstart'); //监听 elem.addEventListener('touchstart', function...(e) { ... }, false); // 触发event. elem.dispatchEvent(event); Event构造函数也可以使用自定义事件 var event = new Event

    4.9K30
    领券