如何使用Javascript触发CSS"悬停状态"?

Pac*_*ier 28 html javascript css browser

当用户将鼠标悬停在元素上时,将触发CSS的"悬停状态":

<style>
.element{

}
.element:hover{
    background-color:red;
}
</style>
Run Code Online (Sandbox Code Playgroud)

如何使用Javascript将元素设置为"悬停状态"?

可能吗?

Dav*_*mas 15

如果您可以接受使用:focus而不是悬停,则可以使用:

var links = document.getElementsByTagName('a');
links[0].focus();
Run Code Online (Sandbox Code Playgroud)

JS小提琴演示.

要么

var linkToFocus = document.getElementById('link');
linkToFocus.focus();
Run Code Online (Sandbox Code Playgroud)

JS小提琴演示.

显然,这种方法需要调整CSS以包含a:focus样式:

a:link, a:visited {
    background-color: #fff;
}
a:hover, a:focus, a:active {
    background-color: #f00;
}
Run Code Online (Sandbox Code Playgroud)

  • 很好的答案,但问题问如何触发“:hover”,而不是“:focus”。 (3认同)
  • 但是为什么要这样做呢? (2认同)
  • @the_drow:我完全不知道; 但是我怀疑它是在页面加载时显示/突出显示的东西,也许?当然,有更好的方法,但没有进一步的信息,我只能尝试回答所提出的问题.不管用例如何,遗憾的是. (2认同)
  • @the_drow:这在创建组件演示页面时非常有用,您想要在其中显示不同状态下的不同按钮样式(中性、禁用、悬停、聚焦、活动)。 (2认同)

Sco*_*tie 13

您可能最好将:悬停样式复制到另一个类中,然后只需要将该类名称添加到元素中,以便永久更改它们.由于某种原因,伪类是"伪"的.

  • 不是W3C的成员我只能猜测,但是这篇关于Smashing Magazine的文章(http://www.smashingmagazine.com/2013/11/12/an-introduction-to-dom-events/)小亮点:_当一个事件来自设备本身而不是从JavaScript内部合成时,它被称为"可信任".你试图模拟悬停事件而不是自然触发.当然,您可以模拟点击事件而无需轻易地轻按鼠标按钮,这显然不是一个硬标准.浏览器对点击更宽容,但显然没有悬停. (4认同)
  • 这并不能解释它.它引出了一个问题**为什么**悬停不是一个值得信赖的事件? (3认同)
  • 确切地说,我们被允许称之为"焦点"但不是"悬停"似乎完全是武断的. (3认同)
  • 还有,哇。这是您正在进行的一项长期项目!;) (2认同)