使用jquery逐字逐句淡化一个段落?

unk*_*own 8 javascript jquery

    <p class="example">i want to split this paragraph into 
words and fade them in one by one</p>
Run Code Online (Sandbox Code Playgroud)

jquery/js:

$(document).ready(function() {

    var $txt = $(".example")
       ,$words = $txt.text()
       ,$splitWords = $words.split(" ");

    $txt.hide();

    for(i = 0; i < $splitWords.length; i++){
     // i want fade in each $splitWords[i]
     //$splitWords[i].fadeIn(....  - i tried this doesnt work

   }
  });
Run Code Online (Sandbox Code Playgroud)

我试图将段落分成单词,并逐一淡化它们,这可能是一个更简单的方法来做到这一点而不分裂的话,请对此有所了解.谢谢

use*_*654 15

文本本身不能具有不透明度,因此必须使用可以具有不透明度的元素(例如span)来包装文本.然后你可以淡出这些跨度.

试试这个:

http://jsfiddle.net/6czap/

var $el = $(".example:first"), text = $el.text(),
    words = text.split(" "), html = "";

for (var i = 0; i < words.length; i++) {
    html += "<span>" + words[i] + " </span>";
}

$el.html(html).children().hide().each(function(i){
  $(this).delay(i*500).fadeIn(700);
});
Run Code Online (Sandbox Code Playgroud)

benekastah更新:http://jsfiddle.net/6czap/3/

var $el = $(".example:first"), text = $.trim($el.text()),
    words = text.split(" "), html = "";

for (var i = 0; i < words.length; i++) {
    html += "<span>" + words[i] + ((i+1) === words.length ? "" : " ") + "</span>";
};
$el.html(html).children().hide().each(function(i){
  $(this).delay(i*200).fadeIn(700);
});
$el.find("span").promise().done(function(){
    $el.text(function(i, text){
       return $.trim(text);
    });            
});
Run Code Online (Sandbox Code Playgroud)