调用函数时,如何将光标更改为该加载图标,如何在javascript / jquery中将其更改为普通光标
调用函数时,如何将光标更改为该加载图标,如何在javascript / jquery中将其更改为普通光标
Answers:
我的一位同事提出了一种比这里选择的解决方案更好的方法。首先,在CSS中,添加以下规则:
body.waiting * {
cursor: progress;
}
然后,打开进度游标,说:
$('body').addClass('waiting');
并关闭进度游标,请说:
$('body').removeClass('waiting');
这种方法的优点是,当您关闭进度游标时,将恢复您在CSS中定义的所有其他游标。如果CSS规则的优先级不够强,无法否决其他CSS规则,则可以在正文和规则中添加ID,或使用!important
。
使用jquery和css:
$("#element").click(function(){
$(this).addClass("wait");
});
HTML: <div id="element">Click and wait</div>
CSS: .wait {cursor:wait}
div
。实际上,显示等待光标的所选项目应大于单击的项目。通常,最好将其显示在整个页面上,如公认的答案所示。
覆盖所有单个元素
$("*").css("cursor", "progress");
$('#some_id').click(function() {
$("body").css("cursor", "progress");
$.ajax({
url: "test.html",
context: document.body,
success: function() {
$("body").css("cursor", "default");
}
});
});
这将创建一个加载游标,直到您的ajax调用成功为止。
success
并且complete
在jQ3中已被删除,因此您必须继续使用$.ajax(...).always(...);
可以在beforeSend
函数中设置prosess光标。
jQuery的:
$("body").css("cursor", "progress");
再次回来
$("body").css("cursor", "default");
纯:
document.body.style.cursor = 'progress';
再次回来
document.body.style.cursor = 'default';
您不需要JavaScript。您可以使用CSS将光标更改为所需的任何内容:
selector {
cursor: url(myimage.jpg), auto;
}
请参阅此处以获取浏览器支持,因为根据浏览器的不同会有一些细微的差异
如果保存太快,请尝试以下操作:
<style media="screen" type="text/css">
.autosave {display: inline; padding: 0 10px; color:green; font-weight: 400; font-style: italic;}
</style>
<input type="button" value="Save" onclick="save();" />
<span class="autosave" style="display: none;">Saved Successfully</span>
$('span.autosave').fadeIn("80");
$('span.autosave').delay("400");
$('span.autosave').fadeOut("80");
将光标设置为“ body”将更改页面背景的光标,而不更改页面背景上的控件。例如,将鼠标悬停在按钮上时,它们仍将具有常规光标。以下是我正在使用的:
要设置“等待”光标,请创建一个样式元素并插入头部:
var css = "* { cursor: wait; !important}";
var style = document.createElement("style");
style.type = "text/css";
style.id = "mywaitcursorstyle";
style.appendChild(document.createTextNode(css));
document.head.appendChild(style);
然后,要恢复光标,请删除样式元素:
var style = document.getElementById("mywaitcursorstyle");
if (style) {
style.parentNode.removeChild(style);
}