我一直在使用一些按钮,现在有一些按钮效果不佳,因为它们是使用相对位置和顶部的单击:1px在:active伪类。当mousedown和mouseup事件不等于点击时
我点击事件没有触发问题,结果是由于mousedown和mouseup事件没有触发相同的元素。我做了一些小小的调整,以确保最内部的元素覆盖整个按钮,并发现问题依然存在。
如果我在文本的顶部点击右键,然后链接跳下(触发mousedown事件),然后备份(触发mouseup事件),但不会发生点击。如果我在文字中间点击很好,或者很好地离开文字,一切都很好。
我能想到的唯一的事情就是mousedown事件在textNode上触发,而mouseup在anchor元素上触发,因为textNode不再处于光标之下。捕捉事件对象并使用萤火虫查看目标表明情况并非如此,但我真的无法想到另一种解释。仔细阅读一下,我可以找到一些关于在Safari上触发textNode的事件,但没有提到这种不匹配。
以下片段应该允许您复制问题。记住,你必须点击右键,在文本,或者像素或两个以上的顶部,这个问题只有一行像素的发生:
<style>
a.button-test {
display: inline-block;
padding: 20px;
background: red;
}
.button-test:active {
position: relative;
top: 1px;
}
</style>
<a class="button-test" href="#">Clickedy click</a>
与CSS乱搞,不使用内联块,增加行高而不是填充等在这里似乎没有效果。我尝试了很多组合。我的大部分测试都是在Firefox中完成的,以允许我绑定事件并通过萤火虫记录发生了什么,但我也在其他浏览器中遇到过这个问题。
有没有人有任何灵感,他们可以提供其他比失去积极跳跃?如果可以的话,我真的很想保持这种效果。
非常感谢,
大教堂(没有双关语意)