jQuery插件按顺序显示文本

时间:2018-08-26 12:22:06

标签: jquery plugins fadein fadeout

我正在尝试创建一个插件,该插件使用FadeIn,FadeOut依次显示屏幕上的元素。

该脚本同时显示了我的元素,但是我确实调用了,然后,在fadeOut之后,在回调上。我不知道那里发生了什么。

在其淡入,等待,淡出然后传递到下一个元素的元素中的每个元素。

有帮助吗?已经存在执行类似操作的插件吗?

live example

编辑:抱歉,我忘了粘贴链接:

(function ($) {

let sentences;
let index;

$.fn.talk = function () {
    sentences = this.find(".sentence");
    index = -1;
    showNextSentence(sentences, index);
};

function showNextSentence() {
    ++index;
    if (index < sentences.length) {
        sentences.eq(index % sentences.length)
            .fadeIn(2000)
            .delay(2000)
            .fadeOut(2000, showNextSentence());
    }

    return null;
}

}(jQuery));

  $('.talk').talk();

1 个答案:

答案 0 :(得分:1)

更改

fadeOut(2000, showNextSentence())

收件人

fadeOut(2000, showNextSentence)

第一个版本将立即被调用,而不是在事件完成之后被调用

DEMO