CSS发抖

纯CSS发抖 

当您在 @keyframes 中创建动画时,请把它捆绑到某个选择器,否则不会产生动画效果。

通过规定至少以下两项 CSS3 动画属性,即可将动画绑定到选择器:

  • 规定动画的名称
  • 规定动画的时长

html

<section class="section carrot" style="position: absolute;">
        <h1>抖动方式</h1>
        <ul class="previews">
            <li>
                <i class="preview-item shake">
                    Bs
                    <span class="flip">
                    </span>
                </i>
                <p class="preview-desc">基本抖动</p>
            </li>
        
            <li>
                <i class="preview-item shake shake-constant">
                    ?
                    <span class="flip"></span>
                </i>
                <p class="preview-desc">抖动不停</p>
            </li>
        </ul>
    </section>

css

/*绕着图片那个点旋转*/
.shake { display: inline-block;
    -webkit-transform-origin: center center;
    -ms-transform-origin: center center;
    transform-origin: center center; 
}
/*基本抖动*/
.shake:hover { -webkit-animation-name: shake-base;
    -ms-animation-name: shake-base;
    animation-name: shake-base;
    -webkit-animation-duration: 100ms; 
    -ms-animation-duration: 100ms; 
    animation-duration: 100ms;
    -webkit-animation-iteration-count: infinite; 
    -ms-animation-iteration-count: infinite;
    animation-iteration-count: infinite; 
    -webkit-animation-timing-function: ease-in-out; 
    -ms-animation-timing-function: ease-in-out; 
    animation-timing-function: ease-in-out;
    -webkit-animation-delay: 0s; 
    -ms-animation-delay: 0s;
    animation-delay: 0s; 
    -webkit-animation-play-state: running; 
    -ms-animation-play-state: running;
    animation-play-state: running; 
  }
  /*抖动不停*/
  .shake.shake-constant { 
    -webkit-animation-name: shake-base;
    -ms-animation-name: shake-base;
    animation-name: shake-base; 
    -webkit-animation-duration: 100ms;
    -ms-animation-duration: 100ms; 
    animation-duration: 100ms; 
    -webkit-animation-iteration-count: infinite; 
    -ms-animation-iteration-count: infinite; 
    animation-iteration-count: infinite; 
    -webkit-animation-timing-function: ease-in-out; 
    -ms-animation-timing-function: ease-in-out; 
    animation-timing-function: ease-in-out;
    -webkit-animation-delay: 0s; 
    -ms-animation-delay: 0s;
    animation-delay: 0s;
    -webkit-animation-play-state: running;
    -ms-animation-play-state: running;
    animation-play-state: running; 
 }
 /*keyframes 动画*/
@-webkit-keyframes shake-base {
  0% { -webkit-transform: translate(0px, 0px) rotate(0deg); }
  2% { -webkit-transform: translate(-0.5px, 1.5px) rotate(0.5deg); }
  4% { -webkit-transform: translate(-0.5px, 1.5px) rotate(-0.5deg); }
  6% { -webkit-transform: translate(-2.5px, -1.5px) rotate(0.5deg); }
  8% { -webkit-transform: translate(-2.5px, -2.5px) rotate(-1.5deg); }
  10% { -webkit-transform: translate(1.5px, 1.5px) rotate(-1.5deg); }
  12% { -webkit-transform: translate(-2.5px, -0.5px) rotate(-0.5deg); }
  14% { -webkit-transform: translate(1.5px, -2.5px) rotate(-0.5deg); }
  16% { -webkit-transform: translate(0.5px, 1.5px) rotate(0.5deg); }
  18% { -webkit-transform: translate(-2.5px, -0.5px) rotate(0.5deg); }
  20% { -webkit-transform: translate(-0.5px, -0.5px) rotate(-1.5deg); }
  22% { -webkit-transform: translate(-2.5px, -1.5px) rotate(-1.5deg); }
  24% { -webkit-transform: translate(-1.5px, -2.5px) rotate(-1.5deg); }
  26% { -webkit-transform: translate(0.5px, -0.5px) rotate(-1.5deg); }
  28% { -webkit-transform: translate(-0.5px, -1.5px) rotate(-0.5deg); }
  30% { -webkit-transform: translate(-2.5px, 1.5px) rotate(0.5deg); }
  32% { -webkit-transform: translate(-2.5px, -2.5px) rotate(-0.5deg); }
  34% { -webkit-transform: translate(-1.5px, 0.5px) rotate(-1.5deg); }
  36% { -webkit-transform: translate(1.5px, -1.5px) rotate(-1.5deg); }
  38% { -webkit-transform: translate(0.5px, -0.5px) rotate(-0.5deg); }
  40% { -webkit-transform: translate(-0.5px, 0.5px) rotate(0.5deg); }
  42% { -webkit-transform: translate(0.5px, -2.5px) rotate(-0.5deg); }
  44% { -webkit-transform: translate(0.5px, -2.5px) rotate(-0.5deg); }
  46% { -webkit-transform: translate(-1.5px, 1.5px) rotate(-1.5deg); }
  48% { -webkit-transform: translate(0.5px, -2.5px) rotate(-0.5deg); }
  50% { -webkit-transform: translate(-1.5px, -0.5px) rotate(-1.5deg); }
  52% { -webkit-transform: translate(-2.5px, -0.5px) rotate(-1.5deg); }
  54% { -webkit-transform: translate(1.5px, 0.5px) rotate(-1.5deg); }
  56% { -webkit-transform: translate(0.5px, 0.5px) rotate(-1.5deg); }
  58% { -webkit-transform: translate(0.5px, 1.5px) rotate(-0.5deg); }
  60% { -webkit-transform: translate(-0.5px, -2.5px) rotate(-0.5deg); }
  62% { -webkit-transform: translate(-2.5px, -1.5px) rotate(-0.5deg); }
  64% { -webkit-transform: translate(-1.5px, 0.5px) rotate(0.5deg); }
  66% { -webkit-transform: translate(0.5px, -0.5px) rotate(-1.5deg); }
  68% { -webkit-transform: translate(-1.5px, -0.5px) rotate(-1.5deg); }
  70% { -webkit-transform: translate(-0.5px, -2.5px) rotate(-1.5deg); }
  72% { -webkit-transform: translate(-2.5px, -0.5px) rotate(-1.5deg); }
  74% { -webkit-transform: translate(-2.5px, 0.5px) rotate(0.5deg); }
  76% { -webkit-transform: translate(1.5px, -1.5px) rotate(-1.5deg); }
  78% { -webkit-transform: translate(1.5px, -2.5px) rotate(0.5deg); }
  80% { -webkit-transform: translate(-2.5px, -2.5px) rotate(-0.5deg); }
  82% { -webkit-transform: translate(-2.5px, -1.5px) rotate(0.5deg); }
  84% { -webkit-transform: translate(0.5px, -2.5px) rotate(-0.5deg); }
  86% { -webkit-transform: translate(-2.5px, 0.5px) rotate(-0.5deg); }
  88% { -webkit-transform: translate(-2.5px, -0.5px) rotate(-0.5deg); }
  90% { -webkit-transform: translate(-1.5px, -1.5px) rotate(-1.5deg); }
  92% { -webkit-transform: translate(-0.5px, -1.5px) rotate(-0.5deg); }
  94% { -webkit-transform: translate(0.5px, -0.5px) rotate(-0.5deg); }
  96% { -webkit-transform: translate(-2.5px, -2.5px) rotate(0.5deg); }
  98% { -webkit-transform: translate(-0.5px, 1.5px) rotate(-0.5deg); } }

 

 

抖动方式

鼠标放上去 开始抖动

  • Bs

    基本抖动

  • ?

    抖动不停

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。