jquery - jquery代码错误

标签 jquery delay mouseover mouseout

所以我在 .mouseout.mouseover 上有一个动画 gif,3 秒后我想在那里有一个静止图像。我使用的方法是更改​​ divbackground-image,因此我有四个图像:

  1. 当页面加载时(我在普通的 css 文件中执行此操作)
  2. 当鼠标悬停时(应该是动画,我正在做这个 jQuery)
  3. 当鼠标移出时(应该是动画,我正在做这个 jQuery)
  4. 鼠标移出事件后 3 秒(应该是正常的)

我被困在 4 上,不知道如何编写代码,所以这是我对 2 和 3 的代码:

    $("#ubBackground").hover(function(){
        $(this).stop().css("background-image","url(img/userBoxMouseOver.gif)");},
            function(){
      $('#ubBackground').css('background-image','url(img/userBoxMouseOut.gif)');
                        }
    );

我认为我应该使用 .delay() 但我不知 Prop 体如何使用,任何帮助都会受到赞赏。

最佳答案

var timer;

$("#ubBackground").on({
    mouseenter: function(){
        clearTimeout(timer);
        $(this).css("background-image","url(img/userBoxMouseOver.gif)");
    },
    mouseleave: function() {
        var self=this;
        $(this).css('background-image','url(img/userBoxMouseOut.gif)');
        timer = setTimeout(function() {
            $(self).css('background-image','url(img/userBox3secLater.gif)');
        }, 3000);
    }
});

设置一个定时器,当鼠标离开时,三秒后改变背景,并清除mouseenter中的超时,以防鼠标在三秒内再次进入。

关于jquery - jquery代码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12146363/

相关文章:

javascript - JS 在选择下拉菜单打开时创建延迟

javascript - 为什么链中的所有方法同时执行?

windows - 延迟批处理文件中的 'for' 循环

javascript - 值数组选择器作为变量 jquery

css - 为 gif 设置计时器以开始

css - 在 Chrome 中按下鼠标按钮时悬停样式无法应用

c# - 使用 C# 自定义控件中的透明复选框

jquery - jScrollpane 在我的网站上运行时遇到问题

javascript - 导出为 .txt 并排显示所有 <p> 行,而不是逐行显示 javascript jquery

javascript - 在原型(prototype)的构造函数中初始化属性时获取 'undefined'