阅读:使用javascripthover伪类
我创建了一个覆盖页面上某些元素的hover的函数。 它在正常和hover效果之间消失。 因为我必须在我的CSS文件中创建一个.hover类。 我觉得这有点不干净。 我怎么能读到:hover伪类内容?
更新 :我不知怎的错了。 以下示例不起作用。 请参阅@ bfavaretto的评论以获得解释。
在Firefox,Opera和Chrome或任何其他正确实现window.getComputedStyle
浏览器中都非常简单。 你只需要传递“hover”作为第二个参数:
但我不相信还有一个Internet Explorer的解决方案,除了像Gumbo建议的那样使用 因此,到目前为止,拥有document.styleSheets
。 但是会有分歧。 .hover
类是最佳解决方案。 根本不是不洁净的。
使用getComputedStyle
作为接受的答案将不起作用,因为:
- 悬浮状态的计算样式仅在元素实际处于该状态时可用。
-
getComputedStyle
的第二个参数应为空或伪元素。 它不适用于:hover
因为它是一个伪类。
这是一个替代解决方案:
function getCssPropertyForRule(rule, prop) { var sheets = document.styleSheets; var slen = sheets.length; for(var i=0; i
演示
您可以访问document.styleSheets
并查找应用于该特定元素的规则。 但这并不比使用简单的附加类更清洁。
如果这里有任何人使用接受回答的问题但是它不起作用,这里有一个很好的function:
function getPseudoStyle(id, style) { var all = document.getElementsByTagName("*"); for (var i=0, max=all.length; i < max; i++) { var targetrule = ""; if (all[i].id === id) { if(all[i].selectorText.toLowerCase()== id + ":" + style) { //example. find "a:hover" rule targetrule=myrules[i] } } return targetrule; } }