首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

js移动中touch事件

触摸事件是在移动设备(如智能手机或平板电脑)上查看页面时触发的事件。 它们允许您跟踪多点触摸事件。...我们有4个触摸事件: touchstart 触摸事件已经启动(触摸表面) touchend 一个触摸事件已经结束(表面不再被触摸) touchmove 触摸移动手指(或任何接触设备的东西)在表面移动 touchcancel...触摸事件已被取消 每当一个触摸事件发生,会触发一个触摸事件: const link = document.getElementById('my-link') link.addEventListener...用于跟踪多点触摸事件。相同的手指=相同的标识符。...clientX / clientY 无论是否滚动,鼠标指针相对于浏览器窗口的x和y坐标 screenX / screenY 屏幕坐标中鼠标指针的x和y坐标 pageX / pageY 页面坐标(包括滚动

8.8K20

JS事件冒泡及阻止

事件冒泡及阻止 当一个元素接收到事件的时候,会把他接收到的事件传给自己的父级,一直到window,当然其传播的是事件,绑定的执行函数并不会传播,如果父级没有绑定事件函数,就算传递了事件,也不会有什么表现...DOCTYPE html> JS事件冒泡及阻止 div{...DOCTYPE html> JS事件冒泡及阻止 li{...有时候我们并不希望事件冒泡而去执行上级节点绑定的事件,这时候就需要阻止事件的冒泡,w3c的方法是e.stopPropagation(),IE则是使用 window.event.cancelBubble...阻止冒泡并不能阻止对象默认行为,例如submit按钮被点击后会提交表单数据,需使用e.preventDefault();阻止默认行为,IE则是window.event.returnValue = false

6.5K20

移动滚动研究

移动web滚动问题 在移动如果使用局部滚动,意思就是我们的滚动在一个固定宽高的div内触发,将该div设置成overflow:scroll/auto;来形成div内部的滚动,这时我们监听div的onscroll...方案比较 第一种方案由于惯性滚动的时机时由js自己控制所以可以拿到滚动触发阶段的scrolltop值,并且滚动的回调函数onscroll在滚动的阶段都会触发。...在使用模拟滚动时,浏览器在js层面会消耗更多的性能去改变dom元素的位置,在dom复杂层级深的页面更为高,所以在长列表滚动时还要使用正常滚动更好。...使用rAF(requestAnimationFrame)触发滚动事件 如果页面只需要兼容高版本浏览器或应用在移动,又或者页面需要追求高精度的效果,那么可以使用浏览器的原生方法 rAF(requestAnimationFrame...大概的做法就是在页面滚动的时候, 给 添加上 .disable-hover 样式,那么在滚动停止之前, 所有鼠标事件都将被禁止。当滚动结束之后,再移除该属性。

3.1K20

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

导绪移动浏览器兼容性较好,不需要考虑JS的兼容性问题,可以放心的使用原生JS书写效果,但是移动也有自己独特的地方。如触屏事件touch (也称触摸事件) , Android和IOS都有。...这类事件用于描述一个或多个触点,使开发者可以检测触点的移动,触点的加和减少,等等 touchstart、touchmove、 touchend 三个事件都会各自有事件对象。...,然后用盒子原来的位置+手指移动的距离4.手指移动的距离 = 手指滑动中的位置 - 手指刚开始触摸的位置<!...= e.targetTouches[0].pageY - startY; // 移动盒子,盒子原来的位置+手指移动的距离 this.style.left =...x + moveX + 'px'; this.style.top = y + moveY + 'px'; // 阻止屏幕滚动行为 e.preventDefault

47400

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

我知道event.preventDefault()会阻止a标签默认的动作(跳转到href指定的页面),但是为什么click也不触发了呢?...之后我大胆推测了一下: 会不会是因为在移动click事件的触发条件就是必须touchstart和touchend同时触发才能触发click呢?...原来touchmove中添加event.preventDefault方法之后会阻止浏览器默认的滚动。。。...所以页面无法滚动了,之后又去找找找,找了很久一直没找到怎么解决这个问题,突然想起之后用的一个移动的图片轮播插件, 为什么他们可以左右滑动,不影响click事件和a标签,也不影响页面滚动。...然后测试一下,QQ和微信中特效没有问题,click事件和a标签链接也可以顺利触发,页面滚动也没有问题。 所有问题终于解决了。。

3.1K20

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'); }); 拓展: 点透问题 如果我们在移动所有的

5.7K40

jquery - 页面弹框 - 阻止事件冒泡示例

需求 编写一个简单的页面弹框的示例,功能要求如下: 一个点击按钮,点击可以弹出一个弹框 弹框固定出现在页面的中间位置 需要写一个背景mask,用于遮掩背景,设置透明度0.3 点击弹框外的位置,弹框就可以消失不见...DOCTYPE html> <script type="text/javascript" src="jquery-3.4.0.min.<em>js</em>...解决#btn的<em>事件</em>冒泡,使用return false; ? 在<em>阻止</em>了#btn按钮的click()<em>事件</em>冒泡到$(document)之后,那么弹框就可以正常显示了。...<em>阻止</em>.pop弹框的click()<em>事件</em>,直接return false,就可以避免点击弹框的时候执行$(document).click()里面的fadeOut()<em>事件</em> ?...这个思路不涉及<em>事件</em>冒泡的<em>阻止</em>,但是属于同一个click()方法的<em>阻止</em>,因为点击$(document)的click()<em>事件</em>应该不会冒泡到它下面的元素.pop,不过可以在这里验证一下。

3.3K10

移动事件详解

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

93920

05移动事件

一、移动三大事件          1、手指按下     ontouchstart      2、手指触摸     ontouchmove           3、手指抬起     ontouchend...('touchstart', function(){}); 二、PC事件移动(出现的问题)      1、PC事件移动略慢,大概300ms左右      2、阻止PC事件 document.addEventListener...               5、禁止长按选中文字、图片,系统默认菜单                6、问题:阻止了元素的焦点行为 //解决方法(解决因为document的阻止事件导致的 input...框不能触焦问题) txt.addEventListenr('touchstart', function(ev){ ev.stopPropagation(); }); 三、移动事件对象(当给某元素加上绑定事件函数之后...:位于当前 DOM 元素上(当前dom元素之外的无法获取)的手指的列表      3、changedTouches:涉及当前事件的手指的一个列表      例子:移动无缝轮播切换

1.3K50

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

在前端的移动Web开发中,有一部分事件只在移动产生,如触摸相关的事件。接下来给大家简单总结一下移动事件。 1....PC事件移动的兼容问题 1.1 click事件的200~300ms延迟问题 由于移动默认的布局视口宽度是980像素,所以网页文字非常小,为了快速让网页还原到原来的大小,Safari最新引入了双击缩放功能...移动特有的touch事件 由于移动设备大都具备触摸功能,所以移动浏览器都引入了触摸(touch)事件。...它非常小,非常适合移动。 Zepto.js的touch模块中封装了手势相关的代码。...罪魁祸首其实就是a标签跳转默认是click事件触发,而移动的touch事件触发之后,依然会在300ms后触发click事件。 解决办法: 1.就是阻止触发touch事件完成后的click事件

6.7K80
领券