jquery - 使用 .hover() 时停止 setInterval() 函数?

标签 jquery html css twitter-bootstrap

我有一个 setInterval() 函数,它突出显示 4 个 div 之一,然后继续到下一个,整个循环重复并需要 4 秒才能完成。但是我想创建一个函数,一旦我将鼠标悬停在其中一个 div 上并突出显示我正在悬停的 div 时,它就会停止 setInterval() 函数。离开 div 时,setInterval() 函数应该重新启动。

HTML:

<div class="content color">
<p>Hello</p>
</div>

<div class="content ">
<p>Ola</p>
</div>

<div class="content ">
<p>Namaste</p>
</div>

<div class="content ">
<p>See Ya!</p>
</div>

JQuery:

 function loopy(){
    var items  = $(" .content");
    var length = items.length;

    items.each(function(i, ele) {
        if ($(ele).hasClass("color")) {
            $(ele).animate({opacity: 0.5},500).removeClass("color");

            if (i < (length-1)) {

                $(items[i+1]).animate({  opacity: 1},500).addClass("color");

            }
            else {
                $(items[0]).animate({ opacity: 1},500).addClass("color");
            }

            return false;
        }
    });

function CF()
{
    window.setInterval(function(){loopy();},4000);
}

CF();

我将 CF() 创建为一个包含 setInterval() 函数的函数。当我在“内容”类上创建 .hover() 函数时,我想不出如何停止 CF() 。一旦我的鼠标停止悬停在“内容”类上,CF() 应该重新启动。

最佳答案

试试这个(更新的代码)

var intervalId;

function loopy() {
    var items = $(" .content");
    var length = items.length;

    items.each(function(i, ele) {
        if ($(ele).hasClass("color")) {
            $(ele).animate({opacity: 0.5}, 500).removeClass("color");

            if (i < (length - 1)) {

                $(items[i + 1]).animate({opacity: 1}, 500).addClass("color");

            }
            else {
                $(items[0]).animate({opacity: 1}, 500).addClass("color");
            }

            return false;
        }
    });
}

function CF() {
    intervalId = setInterval(function() {
        loopy();
    }, 4000);
}
$('.content').mouseenter(function() {
    clearInterval(intervalId);
    $('.color').removeClass('color');
    $(this).addClass('color');
}).mouseleave(function() {
    CF();
});

CF();

jsFiddle

关于jquery - 使用 .hover() 时停止 setInterval() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17662661/

相关文章:

css - 访问 HTML5 游戏应用程序 Sprite 表的最快方法

jquery - 使用显示更少/更多选项截断多行 HTML 绑定(bind)

forms - 是否允许在没有标签控件的情况下使用 <label> 标签?

jquery - 我已经使用 jquery 创建了单选按钮,现在我想使用 css 设置它们的样式

javascript - 根据某些div的内容向父div添加类

javascript - 创建一个计时器,它会在每次单击按钮后自动重新启动,并且当前使用该站点的所有用户都可以看到相同的信息

html - 在小浏览器中居中大壁纸

HTML:如果 div 中的行数 > 1,则执行 margin-bottom

html - 下拉菜单尺寸错误,下拉菜单方向错误

javascript - HTML5 输入类型=日期 : Can I open/close the date picker with JavaScript?