learning-note
learning-note copied to clipboard
fastclick iphone need click 2 times
之前使用fastclick
这个库帮我处理300ms
毫秒延迟的问题,一直都是好好的。
直到有一天测试把我叫过去,点了点出现了一个诡异的bug
.经过我一个下午的调试
最后准确的定位到了fastclick
这个库上。
问题描述: 当手机屏幕超过一屏的时候,会点击弹窗按钮,然后关掉, 然后再点击显示弹窗就不管用了,需要
点击俩次才可以。而且这个现象只在iphone
的手机上有问题,安卓机没有任何问题
用iphone
手机打开上面的链接,然后点击屏幕最下方的click me
按钮测试
解决方案:
谷歌了半天也没发现什么解决方案,就去fastclick
提了一个issue
,感谢好心人回答了我的问题。
具体原因不详,可能是fastclick
的bug
.
ps:
由于我本人没有用jq
库,所以修改了下答案的代码,最终如下:
<div class="full-page"></div>
<div class="click-me">click me</div>
<div class="overlay">
<div class="close" onclick='closeOverlay()'>X</div>
</div>
<script src="//cdn.bootcss.com/fastclick/1.0.6/fastclick.min.js" charset="utf-8"></script>
<script type="text/javascript">
if ('addEventListener' in document) {
document.addEventListener('DOMContentLoaded', function () {
window.FastClick.attach(document.body)
})
document.addEventListener('touchend', function (e) {
if (e.target.className === 'click-me') {
e.target.blur()
}
})
}
</script>
上面的页面在iPhone下是正常的。