简要教程
这是一款基于segment.js制作的非常有创意的分段式svg文字动画特效。这个文字动画特效通过动画svg的描边路径来制作各种文字的动画效果,效果非常的赞。
这个svg文字动画特效的第一个demo中的最后几个例子使用了mo.js插件,一款由oleg solomka编写的用于制作网页图形动画的javascript库插件。通过mo.js,可以制作出效果更为震撼的文字动画效果。
特效中使用的字体是exquisite lowercase font,一套极富创意的web字体。
使用方法
要使用该svg文字动画特效,要在页面中引入segment.js,它用于动画svg路径,d3-ease,用于制作easing动画过渡效果,以及letters.js。
<script src="js/segment.js"></script>
<script src="js/d3-ease.v0.6.js"></script>
<script src="js/letters.js"></script>
html结构
可以使用一个<div>容器来包裹需要制作动画效果的文字。
<div class="my-text">my text</div>
初始化插件
然后我们就可以在javascript中获取这个元素,通过配置参数来制作绘制文字的动画。所有的参数选项(除了individualdelays)都可以设置为以下的值:
单个值:可以被所有字母接收。
数组:数组中的第一个元素会被第一个字母接收,第二个元素被第二个字母接收,以此类推。
下面是一个使用配置参数的例子:
// selecting the container element
var el = document.queryselector('.my-text');
// all the possible options (these are the default values)
// remember that every option (except individualdelays) can be defined as single value or array
var options = {
size: 100, // font size, defined by the height of the letters (pixels)
weight: 1, // font weight (pixels)
rounded: false, // rounded letter endings
color: '#5f6062', // font color
duration: 1, // duration of the animation of each letter (seconds)
delay: [0, 0.05], // delay animation among letters (seconds)
fade: 0.5, // fade effect duration (seconds)
easing: d3_ease.easecubicinout.ease, // easing function
individualdelays: false,
// if false (default), every letter delay increase gradually, showing letters from left to right always.
if you want to show letters in a disorderly way, set it to true, and define different delays for the desired letters.
};
// initializing the text (letters parameters: container-element, options)
var mytext = new letters(el, options);
通过上面的配置,我们已经定义了文字显示和动画的选项,插件会在容器中生成svg文字。默认情况下,文字是被隐藏的,如何触发文字动画,可以参看下面的方法。
// show letters with the default options defined
mytext.show();
// hide letters with the default options defined
mytext.hide();
// toggle letters with the default options defined
mytext.toggle();
// an example with all the possible options for triggers
// parameters (json): duration, delay, fade, easing, individualdelays, callback
var newoptions = {
duration: 2,
delay: 0.2,
fade: 1,
easing: d3_ease.easecircleinout.ease,
individualdelays: false,
callback: function(){
mytext.hide();
}
};
// these new options will override the options defined in the initialization
mytext.show(newoptions);
// show letters instantly, without any animation at all
// there is a hideinstantly and toggleinstantly function, too
mytext.showinstantly(); // shortcut for mytext.show(0, 0, 0);
每一个svg字母都被分配一个letter class类,例如:letter-(a, b, c, ...),以及letter-(1, 2, 3, ...)。通过这些class我们可以自定义字母的样式,例如设置margin值或定位方式等。
/* setting margin among all letters */
.letter {
margin: 0 10px;
}
/* setting background to letter m */
.letter-m {
background-color: lightsalmon;
}
以上就是超酷创意分段式svg文字动画特效的内容。