Heim  >  Artikel  >  Web-Frontend  >  分段式基于SVG文字超酷创意动画特效

分段式基于SVG文字超酷创意动画特效

PHP中文网
PHP中文网Original
2016-05-17 09:01:091746Durchsuche


  简要教程

  这是一款基于segment.js制作的非常有创意的分段式SVG文字动画特效。这个文字动画特效通过动画SVG的描边路径来制作各种文字的动画效果,效果非常的赞。

  这个SVG文字动画特效的第一个DEMO中的最后几个例子使用了mo.js插件,一款由Oleg Solomka编写的用于制作网页图形动画的JavaScript库插件。通过mo.js,可以制作出效果更为震撼的文字动画效果。

  

1065.gif


  特效中使用的字体是exquisite lowercase font,一套极富创意的WEB字体。


  使用方法

  要使用该SVG文字动画特效,要在页面中引入segment.js,它用于动画SVG路径,d3-ease,用于制作easing动画过渡效果,以及letters.js。

<script src="js/segment.js"></script>    
2    <script src="js/d3-ease.v0.6.js"></script>                     
3    <script src="js/letters.js"></script>

 HTML结构

 可以使用一个

容器来包裹需要制作动画效果的文字。

<div class="my-text">my text</div>

初始化插件

  然后我们就可以在JavaScript中获取这个元素,通过配置参数来制作绘制文字的动画。所有的参数选项(除了individualDelays)都可以设置为以下的值:

  • 单个值:可以被所有字母接收。

  • 数组:数组中的第一个元素会被第一个字母接收,第二个元素被第二个字母接收,以此类推。

  下面是一个使用配置参数的例子:

// Selecting the container element    
02    var el = document.querySelector(&#39;.my-text&#39;);    
03    
04    // All the possible options (these are the default values)    
05    // Remember that every option (except individualDelays) can be defined as single value or array    
06    var options = {    
07        size: 100,    // Font size, defined by the height of the letters (pixels)    
08        weight: 1,         // Font weight (pixels)    
09        rounded: false,    // Rounded letter endings    
10        color: &#39;#5F6062&#39;,  // Font color    
11        duration: 1,       // Duration of the animation of each letter (seconds)    
12        delay: [0, 0.05],  // Delay animation among letters (seconds)    
13        fade: 0.5,         // Fade effect duration (seconds)    
14        easing: d3_ease.easeCubicInOut.ease,   // Easing function    
15        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.    
16    };    
17    
18    // Initializing the text (Letters parameters: container-element, options)    
19    var myText = new Letters(el, options);


通过上面的配置,我们已经定义了文字显示和动画的选项,插件会在容器中生成SVG文字。默认情况下,文字是被隐藏的,如何触发文字动画,可以参看下面的方法。

// Show letters with the default options defined    
02    myText.show();    
03    
04    // Hide letters with the default options defined    
05    myText.hide();    
06    
07    // Toggle letters with the default options defined    
08    myText.toggle();    
09    
10    // An example with all the possible options for triggers    
11    // Parameters (JSON): duration, delay, fade, easing, individualDelays, callback    
12    var newOptions = {    
13        duration: 2,    
14        delay: 0.2,    
15        fade: 1,    
16        easing: d3_ease.easeCircleInOut.ease,    
17        individualDelays: false,    
18        callback: function(){    
19            myText.hide();    
20        }    
21    };    
22    // These new options will override the options defined in the initialization    
23    myText.show(newOptions);    
24    
25    // Show letters instantly, without any animation at all    
26    // There is a hideInstantly and toggleInstantly function, too    
27    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 */    
2    .letter {    
3      margin: 0 10px;    
4    }    
5    
6    /* Setting background to letter m */    
7    .letter-m {    
8      background-color: lightsalmon;    
9    }

以上就是分段式基于SVG文字超酷创意动画特效的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn