是否有可能通过javascript获得a:悬停颜色而不悬停在元素上?

时间:2012-11-30 18:54:56

标签: javascript jquery html css dom

如果我在它上面盘旋而没有实际悬停在它上面,我想要嗅到链接会变成的颜色。我之所以这样做是因为我知道如何将其更改回使用动画,因为可以通过动态应用的各种皮肤设置颜色。我可以使用javascript或jquery(或者还有其他方法)吗?

编辑:我已经使用CSS过渡实现了这个,但我需要IE9及以下的javascript

3 个答案:

答案 0 :(得分:6)

不,遗憾的是,这是不可能的:您可以使用getComputedStyle()来检索有关伪元素(::before / ::after)的信息,但不能使用:hover伪-selector。

参考文献:

答案 1 :(得分:4)

您可以从样式表中获取值:http://jsfiddle.net/wt3qQ/

// code I found here: http://catcode.com/dominfo/getstyle2.html
function getStyleBySelector( selector )
   {
       var sheetList = document.styleSheets;
       var ruleList;
       var i, j;

       /* look through stylesheets in reverse order that
          they appear in the document */
       for (i=sheetList.length-1; i >= 0; i--)
       {
           ruleList = sheetList[i].cssRules;
           for (j=0; j<ruleList.length; j++)
           {
               if (ruleList[j].type == CSSRule.STYLE_RULE && 
                   ruleList[j].selectorText == selector)
               {
                   return ruleList[j].style;
               }   
           }
       }
       return null;
   }

console.log(getStyleBySelector('a:hover').color);
console.log(getStyleBySelector('#link:hover').color);

答案 2 :(得分:3)

如果您要为颜色设置动画,那么(适用于现代浏览器)您可以启用颜色的转换,这样它就会自动设置为:hover上的任何颜色

使用您可以执行的代码

$('element').css({
   '-webkit-transition':'color 0.5s',
   '-moz-transition':'color 0.5s',
   '-o-transition':'color 0.5s',
   'transition':'color 0.5s',
});