我想嗅一下鏈接將變成的顏色,如果我在它上面盤旋而沒有真正懸停在它上面。我想這樣做的原因是我知道如何將它改回到使用動畫,因爲可以通過動態應用的各種皮膚來設置顏色。我可以使用javascript或jquery(或有任何其他方式來做到這一點)?是否有可能得到一個:懸停顏色通過JavaScript沒有懸停在元素上?
編輯:我已經實現了這個使用CSS轉換,但我需要的JavaScript IE9和下面
我想嗅一下鏈接將變成的顏色,如果我在它上面盤旋而沒有真正懸停在它上面。我想這樣做的原因是我知道如何將它改回到使用動畫,因爲可以通過動態應用的各種皮膚來設置顏色。我可以使用javascript或jquery(或有任何其他方式來做到這一點)?是否有可能得到一個:懸停顏色通過JavaScript沒有懸停在元素上?
編輯:我已經實現了這個使用CSS轉換,但我需要的JavaScript IE9和下面
你可以從樣式表的值: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);
不錯,雖然人們需要知道在CSS中使用的確切選擇器,但您無法從元素中找到它。 –
謝謝。是的,小提琴似乎工作;但是我不打算自己實現或測試它,因爲它現在看起來比我想冒險的還要多,所以我認爲我會忽略
不幸的是,如果CSS樣式表是跨域的,你將無法訪問document.styleSheets – Rhys
不,這不幸的是不可能的:你可以用getComputedStyle()
檢索有關僞元素信息(::before
/::after
),但不是:hover
僞選擇器。
參考文獻:
如果你的意思是動畫的顏色,然後(現代瀏覽器),你可以啓用的顏色和方式,它會自動製作到不管它變成對:hover
要使用代碼應用過渡你可以做
$('element').css({
'-webkit-transition':'color 0.5s',
'-moz-transition':'color 0.5s',
'-o-transition':'color 0.5s',
'transition':'color 0.5s',
});
謝謝,但對不起(我應該在問題中提到這一點),但我想這個的原因是,我爲IE9和以下做了回退。 – byronyasgur
我不認爲你可以得到psuedo選擇器的屬性 –