javascript - 依次显示元素

标签 javascript jquery settimeout

我经常看到这样的问题,并且有多种解决方案。我正在尝试想出一些可以重复使用的简短内容。我的问题是,鉴于以下代码,我是否需要 clearTimeout() 以及在哪里执行此操作?还有,你有什么需要改进的地方吗?这段代码的性能有多好或多坏?
http://jsfiddle.net/elclanrs/fQX8M/15/

var fade1by1 = function ($elms, props) {

    props = props || {};
    props.delay = props.delay || 1; // s
    props.speed = props.speed || 400; // ms
    props.ease = props.ease || 'linear';

    for (var i=0, d=0, l=$elms.length; i<l; i++, d+=props.delay*1000) {
        (function (i, d) {
            // Using `delay()` instead of `setTimeout()`
            // as Alexander suggested
            $elms.eq(i).delay(d).fadeIn(props.speed, props.ease);
        })(i, d);
    }
};

最佳答案

我认为您不需要window.clearTimeout,因为您似乎不想停止动画。如果您仍然犹豫不决,那么使用.delay怎么样? ,它显然也使用了 window.setTimeout

var fade1by1 = function ($elms, speed) {
    speed = speed || 1; // Seconds
    for (var i=0, s=0, l=$elms.length; i<l; i++, s+=speed*1000) {
        $elms.eq(i).delay(s).fadeIn('slow');
    }
};

查看实际效果 here .

关于javascript - 依次显示元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9406743/

相关文章:

javascript - VSCode Intellisense 奇怪的 Javascript 代码自动补全

javascript - Ext JS 选项卡面板不适合窗口大小

javascript - html: 如何在多个选择标签中添加默认选项?

javascript - Jquery将输入属性密码更改为文本

javascript - 为什么我的函数调用应该由 setTimeout 调度立即执行?

javascript - setTimeout 似乎没有调用该函数

javascript - JS : Remove leading slashes, 来自相对路径的点

javascript - Keyup 记录 key-ups 的总数

javascript - 无法从 jQuery 调用 Angular ng-click

javascript - 传递给超时函数时小数点被删除了吗?