【问题标题】:jquery iterate list images with timer and hoverjquery使用计时器和悬停迭代列表图像
【发布时间】:2012-10-20 03:04:01
【问题描述】:

我有一个列表,其中 li 有 img。图像是缩略图,还有另一个 div 应该迭代大版本的缩略图。此外,当用户在缩略图上移动时,大图像迭代应该停止并显示悬停的内容。

我的悬停工作正常,但迭代和时间不正常。我遗漏了一些东西,并不感到惊讶,因为这确实突破了我对 noob 静态页面的能力的限制!

简单的html:

<ul>
 <li><img src='blah' />text</li>
 <li><img src='blah' />text</li>
</ul>
<div ='big'></div>

jquery:

$(document).ready(function(){

    $('li img').each(function (i) {
        var thumb = $(this).attr("src");
        setTimeout(function () { 
            $('#big').html('<img src=' + thumb + '/>');

            }, 5000 * (i + 1));
    });

    imgHov();

});

function imgHov(){
    $('li img').hover(
        function(){
            $('#big').html('<img src=' + $(this).attr("src") + '/>');
        },
        function(){
            $('#big').html("");
        }
        );

};

我准备完全重建这个东西;我尝试使用 jquery .map() 和其他将列表转换为数组而不是 .each 的方法。让我知道您的专家将采取的方向。谢谢!

【问题讨论】:

    标签: jquery each loops timing


    【解决方案1】:

    这是我为你做的,你看看...

    现场演示:

    http://jsfiddle.net/oscarj24/XcZBq/

    只是想知道,我没有使用setTimeout,而是使用setInterval,并为此添加一些逻辑,仅此而已。

    希望这会有所帮助。

    【讨论】:

    • 你就是那个男人!你当然有一只熊宝宝!我没有你的实现在我的最后工作,但 jsfiddle 就是它。我需要更多地了解你让我接触到的新东西,并更深入地挖掘我见过但还没有完全掌握的东西的用法。我真的很感激这一点。巨大的帮助。漂亮的图像。唯一真正的修改是悬停事件不暂停动画;如果你一直悬停,动画会继续。
    • :-) 谢谢!好吧,只是要知道,如果你想停止动画,有一种方法可以删除间隔或超时,我不记得确切,只需搜索“删除间隔或在 javascript 中设置超时”然后当你得到删除的方法它,您可以在悬停事件中调用它,然后在离开悬停时再次放置您的“setInterval”以继续动画。也许您可以将所有这些放在“start()”和“stop()”两个方法中,以免重复代码并以更好的方式处理。
    • 我会调查的。再次感谢。仍在学习地图的使用并尝试在我的本地站点上实施。
    • 成功了!检查我的代码实现时出现“语义问题”,需要我删除一些分号,然后再放回去!奇怪的。谢谢奥斯卡!
    • 是的,我一开始就更正了 :-) 希望你能正常工作,也谢谢你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 2014-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多