Можно ли простым способом установить курсор на «ожидание» на всей html-странице? Идея состоит в том, чтобы показать пользователю, что что-то происходит во время завершения вызова ajax. Код ниже показывает упрощенную версию того, что я пробовал, а также демонстрирует проблемы, с которыми я сталкиваюсь:
- если элемент (# id1) имеет установленный стиль курсора, он будет игнорировать тот, который установлен в теле (очевидно)
- некоторые элементы имеют стиль курсора по умолчанию (а) и не будут отображать курсор ожидания при наведении курсора
- элемент 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>
Это решение показывает только курсор ожидания, но позволяет клики.