使用Wow.js和Animate.css的单个字母动画

时间:2018-08-16 17:22:39

标签: javascript animate.css wow.js

我试图用Wow.js和Animate.css实现逐字母动画。
据我了解,默认情况下无法完成。

我在电笔上发现了一支很棒的笔-https://codepen.io/aartiik/pen/jpjaxE
我想要的效果-'BounceIn'。
不幸的是,我找不到使它与自定义文本一起使用的方法。
Javascript:

new WOW({
  offset: 200
}).init();

var animateCss = [
  "bounce", "flash", "pulse", "rubberBand", "shake", "swing", "tada", "wobble", "jello",
  "bounceIn", "bounceInDown", "bounceInLeft", "bounceInRight", "bounceInUp",
  "fadeIn", "fadeInDown", "fadeInDownBig", "fadeInLeft", "fadeInLeftBig", "fadeInRight", "fadeInRightBig", "fadeInUp", "fadeInUpBig", "flip", "flipInX", "flipInY",
  "lightSpeedIn", "rotateIn", "rotateInDownLeft", "rotateInDownRight", "rotateInUpLeft", "rotateInUpRight",
  "slideInUp", "slideInDown", "slideInLeft", "slideInRight",
  "zoomIn", "zoomInDown", "zoomInLeft", "zoomInRight", "zoomInUp",
  "rollIn"
];

var placeholder = $(".placeholder");
var colorCounter = 0;

for (i = 0; i < animateCss.length; i++) {
  var word = "<div class=\"word\"></div>";
  $(word).appendTo(placeholder);

  for (j = 0; j < animateCss[i].length; j++) {
    var letterDiv = "<div data-wow-delay=\"" + (j * 0.1).toFixed(2) + "s\"  class=\"letter wow " + animateCss[i] + " color" + colorCounter % 7 + "\">" + animateCss[i][j] + "</div>";
    $(letterDiv).appendTo($(".word").last());
    colorCounter++;
  }
}

1 个答案:

答案 0 :(得分:0)

该示例循环遍历每个动画字符串,并为动画字符串本身的名称逐个字母地执行动画。如果删除该外部for循环,则可以使用内部for循环对您喜欢的任何文本执行相同的操作。

这是一个叉子,我在其中将数据文本属性放在div上,并遍历该属性值的每个字母:

https://codepen.io/p8ntballer052/pen/ajgQZm

<div class="word bounce" data-text="Bouncing Text">

var target = $(".bounce"),
    targetText = target[0].dataset.text;

for (j = 0; j < targetText.length; j++) {
    var letterDiv = "<div data-wow-delay=\"" + (j * 0.1).toFixed(2) + "s\"  class=\"letter wow bounceIn\">" + targetText[j] + "</div>";
    $(letterDiv).appendTo(target.last());
}