2012-11-30 56 views
1

我想嗅一下鏈接將變成的顏色,如果我在它上面盤旋而沒有真正懸停在它上面。我想這樣做的原因是我知道如何將它改回到使用動畫,因爲可以通過動態應用的各種皮膚來設置顏色。我可以使用javascript或jquery(或有任何其他方式來做到這一點)?是否有可能得到一個:懸停顏色通過JavaScript沒有懸停在元素上?

編輯:我已經實現了這個使用CSS轉換,但我需要的JavaScript IE9和下面

+0

我不認爲你可以得到psuedo選擇器的屬性 –

回答

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); 
+0

不錯,雖然人們需要知道在CSS中使用的確切選擇器,但您無法從元素中找到它。 –

+0

謝謝。是的,小提琴似乎工作;但是我不打算自己實現或測試它,因爲它現在看起來比我想冒險的還要多,所以我認爲我會忽略 byronyasgur

+0

不幸的是,如果CSS樣式表是跨域的,你將無法訪問document.styleSheets – Rhys

6

不,這不幸的是不可能的:你可以用getComputedStyle()檢索有關僞元素信息(::before/::after),但不是:hover僞選擇器。

參考文獻:

3

如果你的意思是動畫的顏色,然後(現代瀏覽器),你可以啓用的顏色和方式,它會自動製作到不管它變成對:hover

要使用代碼應用過渡你可以做

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

謝謝,但對不起(我應該在問題中提到這一點),但我想這個的原因是,我爲IE9和以下做了回退。 – byronyasgur

相關問題