javascript - 使用动画设置后设置微调器的不透明度

标签 javascript jquery css

我的 html 中有一个引导微调器,我希望隐藏显示(稍微延迟以避免闪烁)然后在从服务器收到响应后隐藏。

听起来很基础。

我可以将不透明度更改为 1,但将其重置为 0 并没有按预期工作 - 尽管元素的属性不透明度为 0,但它仍然可见。

spinnerElement = $(event.target).siblings(".spinner-border");

if (spinnerElement) {
  // display spinner element
  spinnerElement.delay(500).animate({ opacity: 1 }, 300);

}

// submit data via ajax
$.ajax({
  type: 'POST',
  url: url,
  data: { 'foo': 'bar' },
  success: function () {
    // Hide spinner
    if (spinnerElement) {
      spinnerElement.css({ opacity: 0 });
    }
    //  ... successful stuff
  },
  error: function (xhr) {
    //  ... unsuccessful stuff
    // Hide spinner
    if (spinnerElement) {
      console.log(spinnerElement.css('opacity')) // 1
      spinnerElement.css({ opacity: 0 });
      console.log(spinnerElement.css('opacity')) // 0
    }
  }
});

这些是元素的属性。

enter image description here

为什么会这样?我想这与 animate/delay 属性有关,处理这个问题的正确方法是什么?

最佳答案

根据我的评论,在应用新的 css 之前,您可以使用 jQuery.stop() 清除元素上任何正在进行的动画:

spinnerElement.stop().css({ opacity: 0 });

关于javascript - 使用动画设置后设置微调器的不透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55400857/

相关文章:

javascript - 单选按钮确认、取消和确定做同样的事情

javascript - IE 中的 jquery 问题(错误?)与 .css() 操作

javascript - 在 IE 中滚动颜色框

javascript - 打开关闭按钮功能 Bootstrap

javascript - 为什么我的下拉菜单没有触发?

html - CSS 填充速记声明中的反斜杠

javascript - int 数组 - Javascript

javascript - 从网站上读取信息并存储在 excel 文件中

javascript - 从 ajax 返回数据会产生奇怪的对象

javascript - jQuery:删除浏览器生成的标题属性