首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jQuery显示字符1×1动画

使用jQuery显示字符1×1动画
EN

Stack Overflow用户
提问于 2015-10-08 08:47:56
回答 1查看 40关注 0票数 1

我的客户想要一个句子一个字一个字形成的主页。我以前没有做过这样的事情,所以我使用setInterval在jQuery中自己尝试了一些东西。

代码语言:javascript
复制
$(document).ready(function(){
  animatorFadeIn();
});

function animatorFadeIn(){
	var outerStop = setInterval(function(){
		var data = 'This is a test animation';
		var inc = 0;
		var unit = '';
		var stop = setInterval(function()
		{ 
			if(inc < data.length){
			  unit = unit + data[inc];
			  $('#title').html(unit);
			  inc = inc + 1;
			  if(inc == data.length)
			    clearInterval(stop);
			}
	    }, 50);
		clearInterval(outerStop);
	},1000);
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<h1 id="title"></h1>

这在版本<9上是行不通的

这是用这种方式动画文本的正确方法吗?你们能给我介绍一些其他的方法来达到同样的效果吗?这样几乎所有的浏览器都能兼容?

这是小提琴的link

EN

回答 1

Stack Overflow用户

发布于 2015-10-08 08:58:29

一种可能的方法是:

代码语言:javascript
复制
(function() {
  $.fn.onebyone = function(string, settings) {
    var stringLength = string.length,
      chars = string.split(''),
      index = 0,
      that = this;

    that.text('');

    function addLetter() {
      that.text( that.text() + chars[index] )
    }

    var write = setInterval(function() {
      addLetter();
      index++;
      if (index === stringLength) {
        clearInterval(write);
      }
    }, settings.interval);

    return this;
  };
})(jQuery);

用法:

代码语言:javascript
复制
<div id="t" data-text="Hello World!"></div>

(function() {
  $(function() {
    $('#t').onebyone($('#t').data('text'), {interval: 500});
  });
})(jQuery);

See it in action.

另一种方法可以是将原始的0宽度div动画到其全宽度,使用空格游走和溢出可见:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33010893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档