2011-11-15 115 views
1

我需要將鼠標指針更改爲等待光標。我試圖如何更改鼠標指針?

document.body.style.cursor = 'wait';

在我fiddle,我的鼠標光標並沒有改變(也不在我的主要應用程序更改)。我嘗試了幾個方法,但似乎沒有任何工作(測試IE7和FF7)。我該如何改變光標?如果更好,我願意使用CSS而不是JavaScript。

它的價值......在最後的程序中,我需要在AJAX調用開始時更改指針,然後將其更改回回調中的默認值。但是,這是一個簡化的例子,仍然不起作用。

+0

的可能重複[等候在整個html頁面光標(http://stackoverflow.com/questions/192900/等待光標懸停,整個-HTML頁) – ThiefMaster

+0

它工作在鉻細,我覺得有些問題在Firefox –

回答

2

S因爲沒有文字,你沒有真正的身體(就「它沒有身高」而言)。

嘗試添加一些內容然後盤旋文本:http://jsfiddle.net/kX4Es/4/。你可以使用CSS。

或者,將其添加到<html>元素以繞過這個<body>約束:http://jsfiddle.net/kX4Es/3/

html { 
    cursor: wait; 
} 
+0

在FF8中不起作用 – ThiefMaster

+0

@ThiefMaster:好點;似乎等待光標只有在按住鼠標按鈕而不移動時才顯示出來。不知道這是一個錯誤還是'html'不應該有'cursor'屬性。儘管如此,「身體」的方式起作用。 – pimvdb

7

我想創建一個CSS類:

.busy { 
    cursor: wait !important; 
} 

,然後這個類分配給身體或您要標記爲忙什麼元素:

$('body').addClass('busy'); 
// or, if you do not use jQuery: 
document.body.className += ' busy'; 

http://jsfiddle.net/ThiefMaster/S7wza/

如果您需要它在整個頁面上,請參閱Wait cursor over entire html page以獲得解決方案

+0

這是一件好事。我擔心的是用戶必須在'喵'上漂浮才能看到指針變化。有沒有什麼工作,而指針只是在頁面體內的任何地方? –

+0

查看其他問題的鏈接。您可以創建一個覆蓋整個身體區域的包裝。或者,看看* jQuery blockUI *插件。您可以輕鬆地將繁忙的光標添加到塊疊加層。 – ThiefMaster

0

您是否將其聲明爲函數?

function cursor_wait() { 
    document.body.style.cursor = 'wait'; 
} 

然後調用

cursor_wait(); 
在腳本

+0

不,但小提琴是用'OnLoad'設置的,所以這不是正確的? –

0

就像這樣:通過ThiefMaster

0

我只在Chrome和Firefox嘗試這樣做,因此它可能無法工作無處不在上面說

$('html').css('cursor', 'wait'); 

或者作爲一個CSS類。 但是,如果你想用JavaScript做到這一點,並打開和關閉它試試這個。

//add 
document.styleSheets[1].insertRule('html {cursor:wait;}',document.styleSheets[1].cssRules.length); 
//for firefox I had to tell it to fill the screen with the html element 
//document.styleSheets[1].insertRule('html {height:100%;width:100%;cursor:wait;}',0); 

//remove 
document.styleSheets[1].deleteRule(document.styleSheets[1].cssRules.length-1); 

http://www.quirksmode.org/dom/w3c_css.html#access似乎是對實際樣式表的一個很好的參考。我希望有一個更好的方式來編輯HTML元素的風格,但,這是我能找到...