代码之家  ›  专栏  ›  技术社区  ›  Radonirina Maminiaina

动画:translatex 0值不起作用

  •  0
  • Radonirina Maminiaina  · 技术社区  · 7 年前

    我需要将某些DOM元素从某个位置设置为0px,但它不适用于animjs。

    CSS:

    .animate {
      transform: translateX(50px);
      width: 50px;
      height: 50px;
      background: #12acec;
      border-radius: 50%;
    }
    

    这里是JS:

    anime({
      targets: '.animate',
      translateX: 0,
      duration: 300
    })
    

    如果检查元素,我会看到元素立即设置为translatex(0px)( fiddle 1 )。

    但如果我使用的值不同于0,它会起作用( fiddle 2 )。

    是动漫虫还是我做错了? 如果是一个bug,有没有办法用动画处理translatex上的0值?

    更新: 我的目标是像连续动画一样处理…

    <div class="handwritting">
       <span>T</span>
       <span>e</span>
       <span>x</span>
       <span>t</span>
    </div>
    

    JS手写

    anime({
      targets: '.handwritting span',
      opacity: 1,
      duration: 5000,
      delay: function (_, i) {
         return i * 100
      }
    })
    

    ……但它不适用于平移,而是适用于不透明度。( fiddle 3 )

    谢谢你

    2 回复  |  直到 7 年前
        1
  •  1
  •   Radonirina Maminiaina    7 年前

    解决方案是更改translatex值并将值作为数组传递:

    translateX: [50, 0] // [from, to]
    

    这里是 demo .

        2
  •  0
  •   Radonirina Maminiaina    7 年前

    除了CSS中缺失的部分外,第一个小提琴中的所有代码都是正确的。

    transition-duration: 2s; //更改发生2秒。您可以将其更改为所需值

    检查 fiddle here .