簡単な方法でhtmlページ全体でカーソルを「待機」に設定することは可能ですか? アイデアは、ajax 呼び出しが完了している間に何かが起こっていることをユーザーに示すことです。以下のコードは、私が試したものの簡略化されたバージョンを示しており、私が遭遇した問題も示しています。
- 要素(#id1)にカーソルスタイルが設定されている場合、本体に設定されているものは無視されます(明らかに)
- 一部の要素にはデフォルトのカーソル スタイル (a) があり、ホバー時に待機カーソルが表示されません。
- body 要素はコンテンツに応じて特定の高さを持ち、ページが短い場合、カーソルはフッターの下に表示されません
テスト:
<html>
<head>
<style type="text/css">
#id1 {
background-color: #06f;
cursor: pointer;
}
#id2 {
background-color: #f60;
}
</style>
</head>
<body>
<div id="id1">cursor: pointer</div>
<div id="id2">no cursor</div>
<a href="#" onclick="document.body.style.cursor = 'wait'; return false">Do something</a>
</body>
</html>
後で編集...
FirefoxとIEで次のように機能しました:
div#mask { display: none; cursor: wait; z-index: 9999;
position: absolute; top: 0; left: 0; height: 100%;
width: 100%; background-color: #fff; opacity: 0; filter: alpha(opacity = 0);}
<a href="#" onclick="document.getElementById('mask').style.display = 'block'; return false">
Do something</a>
このソリューション (または機能) の問題は、div が重なっているためにクリックが妨げられることです (Kibbee に感謝します)。
後で後で編集...
Dorwardからのより簡単なソリューション:
.wait, .wait * { cursor: wait !important; }
その後
<a href="#" onclick="document.body.className = 'wait'; return false">Do something</a>
このソリューションでは、待機カーソルのみが表示されますが、クリックは許可されます。