FadeIn div内容逐一

时间:2013-09-13 06:53:52

标签: javascript jquery html css

我在div中有一些内容,基本上div会隐藏,现在我想按下按钮时div内容会显示fadeIn功能,现在我的问题我要显示div内容逐一表示一个字母淡入然后其他但在我的情况下,它将逐字逐句完成。

HTML

<div>
   <span>   THIS IS EXAMPLE OF FADE IN WORLD ONE BY ONE IN ALPHABETIC ORDER</span>
</div>
<input type='button' value='click me'/>

JS

$("input[type=button]").click(function(){
    $("div").show();
        $("span").each(function(index) {
        $(this).delay(400*index).fadeIn(300);
    });
});

CSS

div { display:none }

小提琴Here

4 个答案:

答案 0 :(得分:5)

诀窍是将你的跨度分成更小的跨度,每个字母一个,并使用setTimeout一个接一个地淡化这些跨度:

$("input[type=button]").click(function(){
  var $div = $('div');
  $div.html($div.text().split('').map(function(l){
      return '<span style="display:none;">'+l+'</span>'
  }).join('')).show().find('span').each(function(i, e){
      setTimeout(function(){ $(e).fadeIn() }, i*100);
  });
});

Demonstration

答案 1 :(得分:1)

您也可以这样做:

$("input[type=button]").click(function(){

    $("div").find("span").hide();
    $("div").show();
    var spanEle = $("span"),
        contentArray = spanEle.text().split(""),
        current = 0;
        spanEle.text('');
        setInterval(function() {
            if(current < contentArray.length) {
                spanEle.text(spanEle.text() + contentArray[current++]).fadeIn("slow");
            }
        }, 100);
});

演示:: jsFiddle

答案 2 :(得分:1)

DEMO

$(function () {
    $('#test').click(function () {
        var dest = $('div span#char');
        var c = 0;
        var string = dest.text();
        dest.text('').parent().show();
        var q = jQuery.map(string.split(''), function (letter) {
            return $('<span>' + letter + '</span>');
        });
        var i = setInterval(function () {
            q[c].appendTo(dest).hide().fadeIn(1000);
            c += 1;
            if (c >= q.length) clearInterval(i);
        }, 100);
    });
});

答案 3 :(得分:0)

演示http://jsfiddle.net/krasimir/4GmSF/1/

HTML

<div>THIS IS EXAMPLE OF FADE IN WORLD ONE BY ONE IN ALPHABETIC ORDER</div>
<input type='button' value='click me'/>

CSS

div {
    display: none;
}
div span {
    opacity: 0;
}

的JavaScript

var transformText = function(selector) {
    var div = $(selector);
    var words = div.text().split(" ");
    var newHTML = '';
    for(var i=0; word=words[i]; i++) {
        newHTML += '<span>' + word + '</span> ';
    }
    div.html(newHTML);
}
$("input[type=button]").click(function(){
    transformText("div");
    $("div").show();
    $("div span").each(function(index) {
        (function(span, index) {
            setTimeout(function() {
                span.css("opacity", 0);
                span.animate({
                    opacity: 1
                });
            }, index*100);    
        })($(this), index);
    });
});