解决js点击click事件在iOS设备上事件延时闪烁的问题
2017-12-14 10:52
429 查看
闪烁问题
由于在iOS Safari上click事件存在300ms响应延时,所以为touch事件添加样式,会和click事件默认样式叠加而产生闪烁问题。
因为ios safari浏览器中对触摸事件的响应顺序是:
ontouchstart -> ontouchmove -> ontouchend -> (300ms) onclick
快速解决问题的方法:
消除click默认样式
通过讲click事件样式的alpha通道设置为0(透明),消除click事件的闪烁效果
-webkit-user-select: none;-webkit-tap-highlight-color: rgba(0,0,0,0);
如果是父级闪烁,那么需要给父级元素加上-webkit-tap-highlight-color: rgba(0,0,0,0);
此时,浏览器默认的click事件样式就看不到了,但是延时仍然存在。
消除click延时
FastClick 是FT Labs专门为解决移动端浏览器 300 毫秒点击延迟问题所开发的一个轻量级的库。简而言之,FastClick 在检测到 touchend 事件的时候,会通过 DOM 自定义事件立即触发一个模拟 click 事件,并把浏览器在 300 毫秒之后真正触发的click事件阻止掉。
FastClick 非常实际地解决 300 毫秒点击延迟的问题,唯一的缺点可能也就是该脚本的文件尺寸 (尽管它只有10kb)。如果你连这10kb都接受不了的话,那么移动端类库 jQuery和zepto.js都支持tap事件来解决这个问题,尽管它们的响应速度比FastClick慢一些。
转自:http://www.jianshu.com/p/0650b23f9536
由于在iOS Safari上click事件存在300ms响应延时,所以为touch事件添加样式,会和click事件默认样式叠加而产生闪烁问题。
因为ios safari浏览器中对触摸事件的响应顺序是:
ontouchstart -> ontouchmove -> ontouchend -> (300ms) onclick
快速解决问题的方法:
消除click默认样式
通过讲click事件样式的alpha通道设置为0(透明),消除click事件的闪烁效果
-webkit-user-select: none;-webkit-tap-highlight-color: rgba(0,0,0,0);
如果是父级闪烁,那么需要给父级元素加上-webkit-tap-highlight-color: rgba(0,0,0,0);
此时,浏览器默认的click事件样式就看不到了,但是延时仍然存在。
消除click延时
FastClick 是FT Labs专门为解决移动端浏览器 300 毫秒点击延迟问题所开发的一个轻量级的库。简而言之,FastClick 在检测到 touchend 事件的时候,会通过 DOM 自定义事件立即触发一个模拟 click 事件,并把浏览器在 300 毫秒之后真正触发的click事件阻止掉。
FastClick 非常实际地解决 300 毫秒点击延迟的问题,唯一的缺点可能也就是该脚本的文件尺寸 (尽管它只有10kb)。如果你连这10kb都接受不了的话,那么移动端类库 jQuery和zepto.js都支持tap事件来解决这个问题,尽管它们的响应速度比FastClick慢一些。
转自:http://www.jianshu.com/p/0650b23f9536
相关文章推荐
- fastclick.js解决移动端(ipad)点击事件反应慢问题
- onclientclick事件使用JS页面会刷新问题解决
- 移动端点击(click)事件延迟问题的产生与解决方法
- $("#xx").click()的点击事件无效问题解决
- 解决listView的item无法响应点击事件onItemClickListener的问题
- js点击事件链接的问题解决
- vue—webapp 解决点击遮罩层会触发界面上其他元素的click事件问题
- fastclick.js - 解决移动端 click 事件响应慢和点透问题
- 解决Js先触发失去焦点事件再执行点击事件的问题
- 解决JS单击事件设置的弹出模块在点击后闪现消失的问题
- 移动端点击(click)事件延迟问题的产生与解决方法
- js点击事件链接的问题解决
- js不完美解决click和dblclick事件冲突问题
- 解决ListView当中还有ListView onItemClick点击事件问题
- 解决android listview中OnItemClickListener事件和里面button点击事件冲突问题
- 解决自定义ListView中滑动事件和点击的setOnItemClickListener事件冲突的问题
- js事件跨浏览器解决问题的学习与总结
- jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
- 我的Android进阶之旅------>Android中ListView中嵌套(ListView)控件时item的点击事件不起作的问题解决方法