如何在滚动上逐字加载文本

时间:2014-06-11 15:31:56

标签: javascript jquery html css

大家好,当我滚动到div并且h2的内容必须像打字机一样逐字加载时,我试图加载我的h2文本。我试过这种方式,但它不起作用。你们有什么想法吗?

$(window).scroll( function(){   
        $('.inner h2').each(function (i){          
            var header = $(this);
            var header_content = header.html();
            var content = new Array();
            content[i] = header_content;
            position = new Array();
            position[i] = $(this).position().top;
            console.log(content[i]+' pos '+position);     

            var bottom_of_window = $(window).scrollTop() + $(window).height();

            if( bottom_of_window > position[i] ){
                var arrayTitle = content[i].split('');
                var i = 0;              

                var interval = setInterval(function(){
                if (i > arrayTitle.length) 
                {
                  header.html(content[i]);        // wipe out the <span> tags
                  clearInterval(interval);
                } 
                else
                {
                  $('<span>')
                    .html(arrayTitle[i])
                    .appendTo(header)
                    .hide()
                    .fadeIn(50);                    
                    i++;      
                }
                }, 50);

            }            
        }); 

    });

Jsfiddle

1 个答案:

答案 0 :(得分:1)

这是我的看法:http://jsfiddle.net/Sladkoff/73TDB/

我把scroll事件处理程序放在每个函数中。 这样,每个元素都有自己的实例&#39;变量和处理程序。 它需要更多的调整,但也许这将有助于你作为基础。

这对我来说没什么意义:

我没有追加跨度,因为我从你的描述/代码中并没有真正理解你究竟用它来实现什么。

如果这不是你想要的,那么至少我清理了一下:)

// I would have just left a comment if I could.