【发布时间】:2016-11-15 07:42:46
【问题描述】:
我有这个:
const one = document.getElementById('one')
const two = document.getElementById('two')
one.onclick = () => console.log('one')
two.onclick = () => console.log('two')
a {
opacity: 0;
pointer-events: none;
width: 50%;
line-height: 100px;
background: aliceblue;
}
div:hover a {
opacity: 1;
pointer-events: auto
}
div {display: flex}
<div>
<a id="one" href="#one">One</a>
<a id="two" href="#two">Two</a>
</div>
当有人使用鼠标/触控板时,:hover 将被触发,他们可以看到他们正在点击什么。一切都很好。
但是当有人触摸 div 内的任何位置时,:hover 将在触摸后被触发,并且即使用户不知道他们点击的是哪个链接,任一链接都会收到 onclick 事件。
有没有办法确保只有当 div 已经可见时才会触发触摸/点击?
我认为的一种方法是: 一个锚链接在被鼠标/触控板点击时像往常一样工作,但是当它被触摸/点击时,它应该只在第二次点击/触摸时起作用。第二次点击不必在 x 秒内(如双击)。第二次点击可以在第一次之后的任何时间。
【问题讨论】:
标签: javascript html css onclick touch