现在有个需求。。是模拟微信语音交互的
可是长按有个菜单,是显示的“在浏览器中打开”
请问这个能屏蔽掉吗?
这个靠CSS好像没法解决. 用JS吧. 以下是一个案例:
<a href="#"></a>
<a href="#" id="pointer"></a>
<style>
a {
display: block;
width: 200px;
height: 200px;
background: #000;
}
a:last-of-type {
background: #ff0000;
}
</style>
<script>
var t;
var pointer = document.querySelector('#pointer');
var cancelTimeout = function() {
if(t) {
clearTimeout(t);
t = null;
}
};
pointer.addEventListener('touchstart', function(e) {
t = setTimeout(function() {
alert('2s!');
cancelTimeout();
}, 2000);
e.preventDefault();
return false;
});
pointer.addEventListener('touchend', cancelTimeout);
pointer.addEventListener('touchcancel', cancelTimeout);
</script>
touchstart
事件发生的时候阻止默认事件, 由于是长按判断, 就加个定时器.
8 回答4.6k 阅读✓ 已解决
6 回答3.3k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
5 回答1.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决