【前端】微信浏览器触摸事件流程
目前只在微信浏览器测试了,iOS无问题,部分Android有下面这个问题
正常在微信浏览器里面点击的时候会触发 touchstart -> touchend
滑动的时候会触发 touchstart -> touchmove -> touchend
但是当我在touchstart中调用了preventDefault时,点击的流程很大概率(不是100%)会变成 touchstart -> touchmove -> touchend,这是为什么?
麻烦熟悉浏览器内核QQ靓号地图代码的高手帮忙解释下,跪谢 ORZ
demo
源码
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="initial-scale=1.0,width=device-width,maximum-scale=1.0, user-scalable=0,minimum-scale=1.0"/><title>demo</title><style>html, body {height: 100%;margin: 0;padding: 0;
}</style></head><body><div id="demo"><div>slider1</div><div id="log"></div></div><script>var $log = document.querySelector('#log');var log = function(str) {var $l = document.createElement('p');
$l.innerText = str;
$log.children.length
? $log.insertBefore($l, $log.children[0])
: $log.appendChild($l);
};var $demo = document.querySelector('#demo');
$demo.addEventListener('touchstart', function(e) {
log('touchstart');// 可以将下面代码注释掉看看e.preventDefault();
});
$demo.addEventListener('touchmove', function() {
log('touchmove');
});
$demo.addEventListener('touchend', function() {
log('touchend');
});
$demo.addEventListener('click', function() {
log('click');
});</script></body></html>
回答
在touchmove中添加e.preventDefault(),将浏览器默认的滑动惯性去掉
更多相关文章
- 【前端】在苹果safari浏览器上video标签无法正常播放视频
- 【前端】网站自动登陆是前端控制还是后端?
- css与javascript重难点,学前端,基础不好一切白费!
- 浏览器输入域名网址访问后的过程详解
- vue--SEO
- vs code常用插件下载与http协议入门知识
- 无头浏览器Selenium的使用要点
- 开发工具使用
- 开学第一课