textillate.js是一款效果炫酷的jQuery和css3文字动画特效库插件。它通过结合其它一些动画库来制作各种CSS3文字动画特效。

如何使用

基本的html结构如下:

<h1 class="tlt">My Title</h1>
                

在页面的头部引入jQuery和jquery.textillate.js文件。

<script src="http://libs.useso.com/js/jquery/1.9.1/jquery.min.js"></script>
<script src="jquery.textillate.js"></script>
                

然后就可以如下调用插件。

$(function () {
    $('.tlt').textillate();
})
                

上面的方法将会使用默认参数来调用插件。要改变默认参数,你可以使用data-属性来设置新参数。

<h1 class="tlt" data-in-effect="rollIn">Title</h1>
                

或者在初始化插件时设置参数:

$('.tlt').textillate({ in: { effect: 'rollIn' } });
                

你可以通过下面的方式来使 textillate.js 动画整个列表内容。

<h1 class="tlt">
    <ul class="texts">
        <li data-out-effect="fadeOut" data-out-shuffle="true">Some Title</li>   
        <li data-in-effect="fadeIn">Another Title</li>
    </ul>
</h1>
                
$('.tlt').textillate();
                

你可以使用data-属性来控制么一个列表项上的文本的动画效果。

插件依赖

textillate.js文字动画库插件依赖于下面的一些库文件:

可用参数

$('.tlt').textillate({
  // the default selector to use when detecting multiple texts to animate
  selector: '.texts',

  // enable looping
  loop: false,

  // sets the minimum display time for each text before it is replaced
  minDisplayTime: 2000,

  // sets the initial delay before starting the animation
  // (note that depending on the in effect you may need to manually apply 
  // visibility: hidden to the element before running this plugin)
  initialDelay: 0,

  // set whether or not to automatically start animating
  autoStart: true,

  // custom set of 'in' effects. This effects whether or not the 
  // character is shown/hidden before or after an animation  
  inEffects: [],

  // custom set of 'out' effects
  outEffects: [ 'hinge' ],

  // in animation settings
  in: {
    // set the effect name
    effect: 'fadeInLeftBig',

    // set the delay factor applied to each consecutive character
    delayScale: 1.5,

    // set the delay between each character
    delay: 50,

    // set to true to animate all the characters at the same time
    sync: false,

    // randomize the character sequence 
    // (note that shuffle doesn't make sense with sync = true)
    shuffle: false,

    // reverse the character sequence 
    // (note that reverse doesn't make sense with sync = true)
    reverse: false,

    // callback that executes once the animation has finished
    callback: function () {}
  },

  // out animation settings.
  out: {
    effect: 'hinge',
    delayScale: 1.5,
    delay: 50,
    sync: false,
    shuffle: false,
    reverse: false,
    callback: function () {}
  },

  // callback that executes once textillate has finished 
  callback: function () {},

  // set the type of token to animate (available types: 'char' and 'word')
  type: 'char'
});
                

事件

Textillate 会触发下面的事件。

  • start.tlt:当textillate 开始动画时触发。
  • inAnimationBegin.tlt:当 in 动画开始时触发。
  • inAnimationEnd.tlt:当 in 动画结束时触发。
  • outAnimationBegin.tlt:当 out 动画开始时触发。
  • outAnimationEnd.tlt:当 out 动画结束时触发。
  • end.tlt:当textillate 结束动画时触发。

方法

  • $element.textillate('start'):手动开始/重置textillate动画。
  • $element.textillate('stop'):手动暂停/停止textillate动画。
  • $element.textillate('in'):触发当前文字的 in 动画。
  • $element.textillate('out'):触发当前文字的 out 动画。