将光标更改为在javascript/jquery中等待

ahm*_*met 105 html javascript jquery

在此输入图像描述

当调用函数时如何让我的光标更改为此加载图标?如何在javascript/jquery中将其更改回正常光标

Rob*_*ley 175

在你的jQuery中使用:

$("body").css("cursor", "progress");
Run Code Online (Sandbox Code Playgroud)

然后再恢复正常

$("body").css("cursor", "default");
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,但不是进步,我用了等待 (16认同)
  • 我使用`$("html,body")`因为我的页面的主体只适合窗口的一半,所以当鼠标悬停在下半部分时,光标仍然是默认的. (6认同)
  • 原生 JavaScript:`document.body.style.cursor = 'progress';` `document.body.style.cursor = 'default';` (5认同)
  • 页面上的其他元素(即 Bootstrap 按钮)将光标覆盖为非默认显示,当光标仍在该元素上时,将阻止此方法。在这些情况下,我发现最好将 `!important` 与下面的 @hrabinowitz 解决方案一起使用 (2认同)

hra*_*itz 71

一位同事提出了一种方法,我认为这种解决方案比所选方案更为可取.首先,在CSS中添加以下规则:

body.waiting * {
    cursor: progress;
}
Run Code Online (Sandbox Code Playgroud)

然后,打开进度光标,说:

$('body').addClass('waiting');
Run Code Online (Sandbox Code Playgroud)

并关闭进度光标,说:

$('body').removeClass('waiting');
Run Code Online (Sandbox Code Playgroud)

此方法的优点是,当您关闭进度游标时,将恢复CSS中定义的任何其他游标.如果CSS规则的优先级不足以否决其他CSS规则,则可以向正文和规则添加id,或者使用!important.

  • 优秀的解决方案! (3认同)
  • 这应该是最好的答案并被所有者接受。 (2认同)

小智 15

请不要在2018年使用jQuery!没有理由包含整个外部库只是为了执行这一行,可以用一行来实现:

将光标更改为微调器: document.body.style.cursor = 'wait';

将光标恢复为正常: document.body.style.cursor = 'default';

  • 很可能在该页面上有一些东西增加了对自定义处理光标的需求,你不觉得吗?当然不是一个坏点,但jQuery的更改已经被其他东西加载了......呃... 100%? (3认同)
  • 不错的选择。但断然地说“不要使用 jQuery”……是愚蠢的。jQuery 是大多数*大型网站的*首选*解决方案。 (2认同)

tus*_*sar 7

使用jquery和css:

$("#element").click(function(){ 
    $(this).addClass("wait");
});?
Run Code Online (Sandbox Code Playgroud)

HTML: <div id="element">Click and wait</div>?

CSS: .wait {cursor:wait}?

在这里演示


sha*_*ons 7

以下是我的首选方式,每次页面即将更改时都会更改光标 beforeunload

$(window).on('beforeunload', function(){
   $('*').css("cursor", "progress");
});
Run Code Online (Sandbox Code Playgroud)


Kan*_*iya 6

$('#some_id').click(function() {
  $("body").css("cursor", "progress");
  $.ajax({
    url: "test.html",
    context: document.body,
    success: function() {
      $("body").css("cursor", "default");
    }
  });
});
Run Code Online (Sandbox Code Playgroud)

这将创建一个加载光标,直到你的ajax调用成功.

  • 丑陋的代码 - 使用`beforeSend`和`complete`来实现! (8认同)

小智 6

覆盖所有单个元素

$("*").css("cursor", "progress");
Run Code Online (Sandbox Code Playgroud)

  • 这种方法的问题在于,一旦等待结束,您将失去选择器的CSS样式,例如:active /:hover (6认同)

Man*_*eUK 5

你不需要JavaScript.您可以使用CSS将光标更改为您想要的任何内容:

selector {
    cursor: url(myimage.jpg), auto;
}
Run Code Online (Sandbox Code Playgroud)

请参阅此处获取浏览器支持,因为根据浏览器存在一些细微差别

  • 您不需要 javascript 来触发对不同游标的更改吗? (2认同)

xox*_*k4n 5

jQuery的:
$("body").css("cursor", "progress");

再次回来
$("body").css("cursor", "default");

纯:
document.body.style.cursor = 'progress';

再次回来
document.body.style.cursor = 'default';