如何使用animate.css震动减少震动

时间:2014-10-09 18:19:56

标签: html5 css3 animation animate.css

我使用animate.css获取CSS3震动效果,CSS看起来像下面的代码段。现在它来回摇晃多次,我想把震动减半。有没有办法用动画css3做这个或我需要修改下面的css3?如果是这样,最好的方法是什么?

由于

@-webkit-keyframes shake {
  0%, 100% {
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }

  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translate3d(-10px, 0, 0);
            transform: translate3d(-10px, 0, 0);
  }

  20%, 40%, 60%, 80% {
    -webkit-transform: translate3d(10px, 0, 0);
            transform: translate3d(10px, 0, 0);
  }
}

@keyframes shake {
  0%, 100% {
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }

  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translate3d(-10px, 0, 0);
            transform: translate3d(-10px, 0, 0);
  }

  20%, 40%, 60%, 80% {
    -webkit-transform: translate3d(10px, 0, 0);
            transform: translate3d(10px, 0, 0);
  }
}

.shake {
  -webkit-animation-name: shake;
  animation-name: shake;
}

1 个答案:

答案 0 :(得分:1)

不确定你想如何“将震动减半”。你的意思是速度,摇摆吗?

以下是我提出的问题,demo

如果要减慢动画速度,请更改`-webkit-animation-duration:

这是一个自定义的炫酷摇摆/摆动效果:

@keyframes shake {
0% {
  -webkit-transform:translate(2px,1px) rotate(0deg)
}

10% {
  -webkit-transform:translate(-1px,-2px) rotate(-1deg)
}

20% {
  -webkit-transform:translate(-3px,0px) rotate(1deg)
}

30% {
  -webkit-transform:translate(0px,2px) rotate(0deg)
}

40% {
  -webkit-transform:translate(1px,-1px) rotate(1deg)
}

50% {
  -webkit-transform:translate(-1px,2px) rotate(-1deg)
}

60% {
  -webkit-transform:translate(-3px,1px) rotate(0deg)
}

70% {
  -webkit-transform:translate(2px,1px) rotate(-1deg)
}

80% {
  -webkit-transform:translate(-1px,-1px) rotate(1deg)
}

90% {
  -webkit-transform:translate(2px,2px) rotate(0deg)
}

100% {
  -webkit-transform:translate(1px,-2px) rotate(-1deg)
}
}

这是一个简单的demo