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

JS案例 - 基于vue的移动长按手势

而在这个过程中,正好是触摸的三个事件。 监听手指按下去后是否有移动,就该touches上场了,监听他的clientX,clientY只要没变就是没移动。...那就是一个手机自带的效果了:   长按时,在移动触摸文字,(至少ios里)会出现选择文字等干扰我们的真正功能,用了preventDefault()这个属性后就没有了。...如果移动了,那不能算长按事件(不过这个也看产品需求,如果按住也要触发长按规定那个逻辑的话,这不要判断) if (x != e.touches[0].clientX || y !...// 那么移动的话,先要清除事先埋伏的定时器timer1.要不然,虽然不是长按事件但是倒计时还在进行中。...} else if(z=1){ /* 如果,触发了长按事件,终于触发了长按事件

9.1K30

Vue 2.x 移动长按事件实现方式

vue 移动长按事件实现的几种方法的总结 大家好啊,我是你们的攻城狮,我是 Ken,人贱贱爱的前端攻城狮,我要告诉你个严重的问题,这几天心情低落,代码撸不动啊,结果今天一到公司,打开禅道,大家可能不知道什么是...原来是在 pc 右键菜单不能出现了,我一看原来是没有兼容移动事件,因为在 pc 我们只需要使用 @contextmenu 这个事件就可以实现右键菜单的出现了, 当然在此之前我们需要实现一个菜单组件...,因为移动不像 pc 一样有鼠标事件移动只有触摸事件: 今天我们处理 bug 的使用最简单的一种方式,就是使用 @touchstart,@touchend: // 实现移动长按出现右键菜单 start...所以这样处理完成之后,我们可以在 ipad 看到当我们手指长按 iPad 屏幕的时候,右键菜单就会出现了。 ? 以上就是移动长按实现右键菜单。...接下来就是总结 总结 在vue中长按事件并没有封装,在使用的时候需要我们自己取写一个方法获取长按事件

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

    js移动中touch事件

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

    8.9K20

    webview长按事件js监听

    做app开发时,用到了webview,需要监听webview的长按事件,使用原生的js处理监听如下: var timeOutEvent = 0; //定时器 //开始按 function...gtouchstart() { timeOutEvent = setTimeout("longPress()", 500); //这里设置定时器,定义长按500毫秒触发长按事件,时间可以自己改...,个人感觉500毫秒非常合适 return false; }; //手释放,如果在500毫秒内就释放,则取消长按事件,此时可以执行onclick应该执行的事件...false; }; //如果手指有移动,则取消所有事件,此时说明用户只是要移动而不是长按 function gtouchmove() { clearTimeout...表示tap弹起,这时直接清除定时器,ontouchmove表示手指滑动,直接清除定时器即可,这样就简单实现了长按事件监听处理。

    10.3K00

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

    导绪移动浏览器兼容性较好,不需要考虑JS的兼容性问题,可以放心的使用原生JS书写效果,但是移动也有自己独特的地方。如触屏事件touch (也称触摸事件) , Android和IOS都有。...这类事件用于描述一个或多个触点,使开发者可以检测触点的移动,触点的加和减少,等等 touchstart、touchmove、 touchend 三个事件都会各自有事件对象。...touchstart,touchmove,touchend 可以实现拖动元素2.但是拖动元素需要当前手指的坐标值我们可以使用targetTouches[0] 里面的pageX和pageY3.拖动的原理:手指移动计算出手指移动的距离...,然后用盒子原来的位置+手指移动的距离4.手指移动的距离 = 手指滑动中的位置 - 手指刚开始触摸的位置<!...= e.targetTouches[0].pageY - startY; // 移动盒子,盒子原来的位置+手指移动的距离 this.style.left =

    54300

    JS篇(028)-移动 click 事件、touch 事件、tap 事件的区别

    参考答案: 1.click 事件移动会有 200-300ms 的延迟,主要原因是苹果手机在设计时,考虑到用户在浏览网页时需要放大,所以,在用户点击的 200-300ms 之后,才触发 click,...mouseover mouseup 的触发 3.tap 事件移动,代替 click 作为点击事件,tap 事件被很多框架(如 zepto)封装,来减少这延迟问题, tap 事件不是原生的,所以是封装的...记录开始时间 var startTime = 0, // 控制允许延迟的时间 delayTime = 200, // 记录是否移动...,如果移动,则不触发tap事件 isMove = false; // 在touchstart时记录开始的时间 ele.addEventListener('touchstart...document.getElementById('btn'); tap(btn, function() { alert('taped'); }); 拓展: 点透问题 如果我们在移动所有的

    6.4K40

    移动事件详解

    关于移动事件的一些笔记 移动事件类型 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 移动判断手指滑动方向

    98120

    05移动事件

    一、移动三大事件          1、手指按下     ontouchstart      2、手指触摸     ontouchmove           3、手指抬起     ontouchend...('touchstart', function(){}); 二、PC事件移动(出现的问题)      1、PC事件移动略慢,大概300ms左右      2、阻止PC事件 document.addEventListener...解决IOS10下meta中禁止用户缩放功能                3、解决IOS10下溢出隐藏问题                4、禁止系统默认的滚动条                5、禁止长按选中文字...('touchstart', function(ev){ ev.stopPropagation(); }); 三、移动事件对象(当给某元素加上绑定事件函数之后,事件函数默认第一个参数就是事件对象...:位于当前 DOM 元素上(当前dom元素之外的无法获取)的手指的列表      3、changedTouches:涉及当前事件的手指的一个列表      例子:移动无缝轮播切换

    1.3K50

    通过jquery库扩展移动长按触发’事件(模拟浏览器‘长按识别二维码’功能)

    上一篇讲了如何通过qrcode.js解析二维码(图片),那么现在我们要实现的功能就是最开始的要求'长按识别二维码'这个功能!...注意此处不能采用: window.ontouchstart = function (e) { e.preventDefault(); }; 原因是:部分移动浏览器会将页面中其他的事件同时都阻止,web...浏览器在谷歌测试没有问题!...所以此处采用只是阻止当前要长按的图片的浏览器默认事件。...但是即便如此还是遇到一些情况: (1),进入浏览器后你直接长按依然会触发浏览器默认事件,如果等一下再去长按就不会触发浏览器的默认事件,会直接触发我们自定义的事件

    1.4K10

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

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

    6.4K70

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

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

    6.8K80

    移动】touch事件及穿透事件

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

    2K10

    移动触屏事件

    触屏事件概述 移动浏览器兼容性较好,我们不需要考虑以前 JS 的兼容性问题,可以放心的使用原生 JS 书写效果,但是移动也有自己独特的地方。...这类事件用于描述一个或多个触点,使开发者可以检测触点的移动,触点的增加和减少,等等 touchstart、touchmove、touchend 三个事件都会各自有事件对象。...e.targetTouches[0]); //targetTouches[0]就可以得到正在触摸dom元素的第一个手指的相关信息比如手指的坐标等等 }); // 3.手指在DOM元素身上移动事件...,所以重点记住 targetTocuhes 3.案例:移动拖动元素 touchstart、touchmove、touchend可以实现拖动元素 但是拖动元素需要当前手指的坐标值 我们可以使用...  targetTouches[0] 里面的pageX 和 pageY 移动拖动的原理:    手指移动中,计算出手指移动的距离。

    2.9K30

    移动」touch事件,touchEvent对象

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

    1.2K30

    移动」touch事件,touchEvent对象

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

    2.4K20

    移动」touch事件,touchEvent对象

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

    1K30

    移动的touch事件处理

    在iPhone 3Gs发布的时候,其自带的移动Safari浏览器就提供了一些与触摸(touch)操作相关的新事件。随后,Android上的浏览器也实现了相同的事件。...在这个事件发生期间,调用preventDefault()事件可以阻止滚动。  touchend事件:当手指从屏幕上离开的时候触发。  touchcancel事件:当系统停止跟踪触摸的时候触发。...参考文章:http://www.zhangyunling.com/235.html(touch事件简要的探讨一下移动 touch 事件处理几个坑,以及相应的简单处理方法。...tap 事件的判定一个正确的 tap 事件应当满足一下条件:用户手指从屏幕移开时触发不能在用户移动手指时触发(防止和滚动、拖拽事件的冲突)多个手指同时触摸屏幕时不能触发不应该触发 click 事件具体实现代码可以参考...转载本站文章《移动的touch事件处理》,请注明出处:https://www.zhoulujun.cn/html/webfront/SGML/html5/2017_0216_7950.html

    1.7K20
    领券