js实现打字机效果

在七夕表白的小页面(点击查看)中,有一段打字机效果的文字输出。效果还是比较逼真的,实现起来很简单却很巧妙。

来看看关键代码:


(function($) {
    $.fn.typewriter = function() {
        this.each(function() {
            var $ele = $(this), str = $ele.html(), progress = 0;
            $ele.html('');
            var timer = setInterval(function() {
                var current = str.substr(progress, 1);
                if (current == '<') {
                    progress = str.indexOf('>', progress) + 1;
                } else {
                    progress++;
                }
                $ele.html(str.substring(0, progress) + (progress & 1 ? '_' : ''));
                if (progress >= str.length) {
                    clearInterval(timer);
                }
            }, 75);
        });
        return this;
    };
})(jQuery);

基本的原理就是每次增加多一个字符,循环输出一段html。关键的地方在于通过识别“<”以及“>”来跳过html标签,此外,通过当前字符的位置progress与1进行位运算来决定输出“_”或空格,以实现光标的效果。

分享到:

发表评论

昵称

沙发空缺中,还不快抢~