打字机效果与jQuery序列消息

时间:2013-02-13 14:19:22

标签: jquery

我正在尝试用jquery做打字机效果,在每条消息之间按几秒钟顺序显示消息。

这是我的代码 jsfiddle

var where, when; //added
$.fn.teletype = function(opts){
    var $this = this,
        defaults = {
            animDelay: 50
        },
        settings = $.extend(defaults, opts);

    var letters = settings.text.length; //added

    where = '#' + $($this).attr('id'); //added
    when = settings.animDelay; //added

    $.each(settings.text, function(i, letter){
        setTimeout(function(){
            $this.html($this.html() + letter);    
        }, settings.animDelay * i);
    });
};
$(function(){
    $('#container1').teletype({
        animDelay: 100,
        text: 'This is message 1'
    });
     $('#container2').teletype({
        animDelay: 100,
        text: 'this is message 2'
    });
});

但问题是我的消息一起运行

如何控制消息之间的时间?

1 个答案:

答案 0 :(得分:0)

JSFiddle更新:http://jsfiddle.net/dnkwp/19/

和下面的代码

var where, when, iteration; //added

iteration = 0;
bigDelay = 0;
$.fn.teletype = function(opts){
    iteration++;
    var $this = this,
        defaults = {
            animDelay: 50
        },
        settings = $.extend(defaults, opts);

    var letters = settings.text.length; //added

    where = '#' + $($this).attr('id'); //added
    when = settings.animDelay; //added

    if (iteration > 1)
    {
        bigDelay = bigDelay + settings.text.length * settings.animDelay;
        setTimeout(function () {
                $.each(settings.text, function(i, letter){

        setTimeout(function(){
            $this.html($this.html() + letter);


        }, settings.animDelay * i);
    });

        }, bigDelay);
    }
    else
    {

    $.each(settings.text, function(i, letter){

        setTimeout(function(){
            $this.html($this.html() + letter);


        }, settings.animDelay * i);
    });
    }
};

$(function(){
    $('#container1').teletype({
        animDelay: 100,
        text: 'This is message 1'
    });
     $('#container2').teletype({
        animDelay: 100,
        text: 'this is message 2'
    });
     $('#container3').teletype({
        animDelay: 100,
        text: 'this is message 3'
    });
     $('#container4').teletype({
        animDelay: 100,
        text: 'this is message 4'
    });
});


// Added Reversing Function