jQuery 淡入 CSS 类

标签 jquery css jquery-ui fadein

我正在尝试对某些具有“按钮”类的对象执行简单的 fadeIn() CSS 类。我想在悬停时淡入“hoverbutton”类,然后在鼠标离开该元素时淡出。

我在问题中找到了这个。它似乎工作得很好,直到我注意到当我快速将鼠标悬停在多个按钮上时,有些按钮卡在了“悬停按钮”类上。不知道如何解决这个问题。任何建议都会很棒。

$('.button').hover(function(){
    $(this).addClass('hoverbutton', 200);
}, function(){
    $(this).removeClass('hoverbutton', 200);
});

当我将鼠标悬停在一个元素上并快速跳转到具有该类的另一个元素时,它们似乎卡住了,第一个元素的淡化完成之前。

stop()ing 产生了相同的结果。悬停类仍然卡住

$('.button').hover(function(){
  $(this).stop().addClass('hoverbutton', 200);
}, function(){
  $(this).stop().removeClass('hoverbutton', 200);
});

最佳答案

问题是因为 jQueryUI 使用 style 属性来做动画,如果它没有完成(因为悬停发生在悬停完成之前),它正在动画的类实际上并未添加,因此无法通过悬停移除。

要解决这个问题,我们需要在悬停时做两件事:

  • 停止 addClass() 动画
  • 删除由 addClass() 动画创建的任何临时样式

像这样..

$('.button').hover(function() {
    $(this)
        .addClass('hoverbutton', 200);
}, function() {
    $(this).stop()
        .attr("style", "")
        .removeClass('hoverbutton', 200);
});

这是一个例子:http://jsfiddle.net/RBTT8/

关于jQuery 淡入 CSS 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6631126/

相关文章:

javascript - 如果我在 WebGrid 中进行基于 ajax 的分页,模式弹出窗口将不会显示

asp.net - 如何强制在成功函数中完成的 DOM 修改保留在 jQuery.Ajax() 调用中?

javascript - 查看是否有文本输入

javascript - 带有幻灯片动画的 jQuery-UI 可调整大小错误

css - jQueryUI 选项卡出现在所有其他元素之上

javascript - jQuery 使用hover() 连续缩放div 元素

javascript - 使用 localStorage 保存 ajax 响应,然后用作对象

html - 使用 bootstrap 时如何修复与 CSS 的对齐?

html - 用 div 替换无序按钮

php - Word 的 HTML 分页符 - page-break-before :always not working