您的当前位置:首页分段式基于SVG文字超酷创意动画特效

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

2020-11-27 来源:乌哈旅游
  简要教程

  这是一款基于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('.my-text'); 
    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: '#5F6062', // 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 }
    显示全文