2013-10-01 4 views
0

Я jquery nube, у меня есть этот текст пишущей машинки, показывающий то, что я хочу, но мне нужно пройти назад к началу, когда все слова были использованы. Может ли кто-нибудь помочь моему коду с этим.Добавить цикл в текст пишущей машинки JQuery

Вот что у меня есть:

$(function() { 
    var ch = 0; 
    var item = 0; 
    var items = $('#caption li').length; 
    var time = 2000; 
    var delay = 28; 
    var wait = 3000 
    var tagOpen = false; 

$('#showCaption').css('width', ($('#caption').width())); 

function tickInterval() { 
    if(item < items) { 
     var text = $('#caption li:eq('+item+')').html(); 
     type(text); 
     text = null; 
     var tick = setTimeout(tickInterval, time); 
    } else { 
     clearTimeout(tick); 
    } 
} 

function type(text) { 
    time = delay; 
    ch++; 
    if(text.substr((ch - 1), 1) == '<') { 
     if(text.substr(ch, 1) == '/') { 
      tagOpen = false; 
     } 
     var tag = ''; 
     while(text.substr((ch - 1), 1) != '>') { 
      tag += text.substr((ch - 1), 1); 
      ch++; 
     } 
     ch++; 
     tag += '>'; 
     var html = /\<[a-z]+/i.exec(tag); 
     if(html !== null) { 
      html = html[0].replace('<', '</') + '>'; 
      tagOpen = html; 
     } 
    } 
    if(tagOpen !== false) { 
     var t = text.substr(0, ch) + tagOpen; 
    } else { 
     var t = text.substr(0, ch); 
    } 

    $('#showCaption').html(t); 
    if(ch > text.length) { 
     item++; 
     ch = 0; 
     time = wait; 
    } 
} 

var tick = setTimeout(tickInterval, time); 
}); 

Если вам нужен HTML, дайте мне знать.

Заранее спасибо

ответ

0

Просто перезапустить свои счетчики:

function tickInterval() { 
    if (item >= items) 
    { 
     ch = 0; 
     item = 0; 
    } 

    var text = $('#caption li:eq('+item+')').html(); 
    type(text); 

    setTimeout(tickInterval, time); 
} 

Пример: http://codepen.io/paulroub/pen/AgsuF

+0

Спасибо за помощь! – user2751645

Смежные вопросы