jquery在div中加载html时等待光标
我想向用户显示结果正在加载的状态。 如何使用$ MyDiv.load(“page.php”)在div中加载结果时更改光标或gif?
- 最初将加载图像设置为不可见的样式。
- 开始加载时将样式更改为可见。
- 使用load()的回调参数加载完成后,将样式更改为不可见。
例:
$("#loadImage").show(); $("#MyDiv").load("page.php", {limit: 25}, function(){ $("#loadImage").hide(); });
$("body").css("cursor", "progress");
记得以后再归还:
$MyDiv.load("page.php", function () { // this is the callback function, called after the load is finished. $("body").css("cursor", "auto"); });
$("*").css("cursor", "progress")
无论您当前指向的页面在何处都可以使用。 这样您就不必移动光标就可以看到它被激活了。
我认为最好是在css文件中设置
body.wait *, body.wait { cursor:wait !important; }
并在正文中添加/删除类等待
此方法会覆盖输入,链接等中的所有游标。
我真的认为这是一个更好的解决方案,只需在body元素中使用一个类
$('body').addClass('cursorProgress');
当你想要保持原样之前:
$('body').removeClass('cursorProgress');
在你的css文件中放了这样的东西:
body.cursorProgress { cursor: progress; }
因此,使用此解决方案,您不会覆盖对光标样式所做的默认值或更改,第二个优点是您可以在css中添加重要内容。
body.cursorProgress { cursor: progress !important; }
例如,如果要在缩略图上hover时显示较大的图像
//Hovered image $("a.preview").hover(function(e) { var aprev = this; //Show progress cursor while loading image $(aprev).css("cursor", "progress"); //#imgpreview is the to be loaded on hover $("#imgpreview").load(function() { $(aprev).css("cursor", "default"); }); }
更简洁的JQuery方法虽然不一定有效,但是为所有对象添加和删除繁忙的类。
请注意,并非所有浏览器(例如Firefox)都假设最外层可视对象的高度为100%,因此繁忙的光标只会显示在屏幕的一部分上
看看我的解决方案,它涵盖了所有元素,而不仅仅是正文标记: https : //stackoverflow.com/a/26183551/1895428