$("#sales-period").on("change", function() {
$("body").css("cursor", "wait");
});
上面是我用來更改鼠標光標的代碼,當下拉值更改時,問題是光標確實發生更改到身體的等待狀態,但是當我將鼠標懸停在鏈接上時,它仍然會變回指針。我怎樣才能compell它繼續顯示即使在徘徊的鏈接等在網頁的每一部分上更改鼠標光標
$("#sales-period").on("change", function() {
$("body").css("cursor", "wait");
});
上面是我用來更改鼠標光標的代碼,當下拉值更改時,問題是光標確實發生更改到身體的等待狀態,但是當我將鼠標懸停在鏈接上時,它仍然會變回指針。我怎樣才能compell它繼續顯示即使在徘徊的鏈接等在網頁的每一部分上更改鼠標光標
作爲Yotam has posted,你可以覆蓋每元素css cursor
風格在做:
$("*").css("cursor", "wait");
但是,這是非常昂貴的,因爲DOM將不得不改變爲頁面上的每個元素。
另外,這將是一場噩夢,將所有遊標返回到它們被指定等待之前的狀態。如果他們以前有內聯樣式,那麼這些將被覆蓋,並且您將無法將它們返回到以前的狀態。
因此,我建議增加一類的body
,然後讓你的CSS的所有變化:
$("body").addClass("waiting");
body.waiting,
body.waiting a:hover,
body.waiting *
{
cursor:wait !important;
}
然後刪除你根本就等待狀態:
$("body").removeClass("waiting");
這涉及到更少的DOM更改,並解決了您的問題與錨定懸停狀態遊標。
使用CSS universal selector*
選擇頁面上的所有元素的等待狀態:
$("*").css("cursor", "wait");
爲了獲得更好的性能與特點,你可以只針對標記,有不同的遊標,如鏈接或你自己改變了他們的光標等標籤..
要恢復到常規的遊標可使用:
$("*").css('cursor','auto');
在代碼運行之前,已經分配給DOM元素的任何遊標會發生什麼?即你將如何「記住」他們的狀態並將其歸還? –
@LeeTaylor這就是爲什麼我在等待更好的答案。 –
我想使用類似@Curt的建議將是這種情況下的最佳主意。 –
您需要爲所有html
元素重置CSS。您已將光標設置爲body
元素。但a
元素具有默認指針遊標。
試試這個style.css
文件
body.wait,
body.wait * {
cursor: wait;
}
jQuery代碼顯示/隱藏等待光標:
$("body").addClass("wait"); // to add wait cursor
$("body").removeClass("wait"); // to remove wait cursor
試試這個
jQuery("*").css("cursor", "wait");
'!important'聲明應該放在'cursor:wait;'之後。 – Paul
乾杯@保羅。更正。 – Curt