如何使Ajax加载器跟随鼠标?

时间:2009-09-05 02:54:23

标签: .net asp.net jquery ajax dhtml

我希望我的网站上有一些跟随鼠标的东西,有点像Windows 7的功能。

就像在Windows 7中加载某些内容时,会出现一个小圆圈并跟随鼠标。

我正在使用jQuery库,所以我知道我可以使用Ajax Start和Stop来使它出现,但我不知道如何使它跟随鼠标。

要执行此操作的任何插件或如何执行此操作?

5 个答案:

答案 0 :(得分:6)

这个问题已在这里得到解答:jQuery tooltip follow mouse

但是,由于在该过程中进行了大量计算,该解决方案可能会降低用户的浏览器速度。我建议你在CSS中使用这个技巧来改变浏览器的光标:

cursor : url("custom.cur");

答案 1 :(得分:6)

只需将光标更改为标准OS“等待”光标之一即可。 http://www.quirksmode.org/css/cursor.html具有良好的选项和浏览器兼容性网格。将鼠标悬停在网格中的光标名称上以查看浏览器中的示例。

看起来你可能想要进度光标。

mystyle { cursor: progress; }

答案 2 :(得分:1)

我想我会在这个答案中添加一些内容。我对答案的补充实际上并没有涵盖如何使用JQuery来做到这一点。相反,它涵盖了如何使用ASP.NET Ajax框架。如果您的页面(或MasterPage)上有ScriptManager,则此框架将自动成为页面的一部分。此框架是UpdatePanels和其他Ajax Server控件使用的框架。

PageRequestManager Class管理部分页面更新(ajax请求)。您可以使用此类来实现在发生与ajax请求有关时应执行的方法(如ajax请求开始或结束,或者在发出ajax请求时发生错误)。

因此,要使用Ajax.NET框架而不是JQuery实现此解决方案,请获取对PageRequestManager的引用,并实现在PageRequestManager的beginRequest和endRequest事件期间执行的方法,以更改页面的光标样式:

<script type="text/javascript">
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_endRequest(endRequestEventHandler);
    prm.add_beginRequest(beginRequestEventHandler);

    function beginRequestEventHandler() {
        var bodyElement = document.getElementsByTagName("body")[0];
        bodyElement.style.cursor = "wait";
    }
    function endRequestEventHandler() {
        var bodyElement = document.getElementsByTagName("body")[0];
        bodyElement.style.cursor = "default";
    }    
</script>

这很简单。当页面向服务器发出Ajax请求时,会发生PageRequestManager的“beginRequest”事件,并且您的方法将光标更改为“等待”光标(默认情况下,我认为这是Vista中的圆形内容,但我不确定并且可以'测试它,因为我现在正在使用XP)。

当Ajax请求返回浏览器时,会发生PageRequestManager的endRequest事件,并且您的方法将光标更改回“default”。

用户必须做的唯一事情就是移动鼠标(然后应用样式)。当我测试上面的代码时,至少我在FireFox中注意到了这种行为。

快乐编码

-Frinny

答案 3 :(得分:1)

我宁愿这样做更优雅:

$(function(){  
  $("html").bind("ajaxStart", function(){  
     $(this).addClass('busy');  
   }).bind("ajaxStop", function(){  
     $(this).removeClass('busy');  
   });  
});

CSS:

html.busy, html.busy * {  
  cursor: wait !important;  
}  

来源:http://postpostmodern.com/instructional/global-ajax-cursor-change/

答案 4 :(得分:0)

你的意思是鼠标吗?

如果是这样,你可以通过DHTML来做到这一点。 Click Here代表了一个很好的例子。