【问题标题】:How to slide a text after a fixed time interval如何在固定时间间隔后滑动文本
【发布时间】:2017-02-21 21:25:34
【问题描述】:

我想在滑块上从上到下为文本设置动画。这是我用来制作动画的 css:

HTML:

 <p class="rg5 slideInDown" id="text-animation">mobile</p>

css:

.rg5 {
  font-family: roboto sans-serif;;
  font-size: 52px;
  color: #ffffff;
  margin-bottom: 10%;
  line-height: 1;
  text-transform: uppercase;
  transition: 1s ease-in-out;
  animation: slidein 5s infinite;
  -webkit-transition: 1s ease-in-out;
  -moz-transition: 1s ease-in-out;
  -o-transition: 1s ease-in-out;
  -webkit-animation: slidein 5s infinite;
  -moz-animation: slidein 5s infinite; 
  -o-animation: slidein 5s infinite;
  animation-fill-mode: forwards;
}
.slidein {
  -moz-animation-duration: 5s;
  -webkit-animation-duration: 5s;
  animation-duration: 5s;
  -moz-animation-name: slidein;
  -webkit-animation-name: slidein;
  animation-name: slidein;
  -moz-animation-iteration-count: 3;
  -webkit-animation-iteration-count: 3;
  animation-iteration-count: 3;
  -moz-animation-direction: alternate;
  -webkit-animation-direction: alternate;
  animation-direction: alternate;
}
@-moz-keyframes slidein {
  from { 
   -moz-transform: translate(1,-30em) scale(1.2);
}
  to { 
    -moz-transform: translate(1em,1) scale(1.2);
  }
}
@-webkit-keyframes slidein {
  from { -webkit-transform: translate(0s,-20em) scale(1.2);
  }
  to { -webkit-transform: translate(0em,0) scale(1.2);
  }  
}
@keyframes slidein {
  from { 
    transform: translate(0,-20em) scale(1.2);
  }
  to { 
    transform: translate(0em,0) scale(1.2);
  }
}

它在从上到下滑动时完美运行,但动画之间应该有 15 秒的时间间隔。

【问题讨论】:

    标签: jquery css animation


    【解决方案1】:

    这可以使用纯 css 完成,不建议使用 setInterval

    您可以使用animation-iteration-count: infinite; & animation-delay: 15s; 作为后续动画之间的时间间隔。

    参考代码:

    .rg5 {
      font-family: roboto sans-serif;
      font-size: 52px;
      color: black;
      margin-bottom: 10%;
      line-height: 1;
      text-transform: uppercase;
      transition: 1s ease-in-out;
      animation: slidein 5s infinite;
      -webkit-transition: 1s ease-in-out;
      -moz-transition: 1s ease-in-out;
      -o-transition: 1s ease-in-out;
      -webkit-animation: slidein 5s infinite;
      -moz-animation: slidein 5s infinite;
      -o-animation: slidein 5s infinite;
      animation-fill-mode: forwards;
    }
    
    .slidein {
      -webkit-animation-delay: 15s; /* Safari 4.0 - 8.0 */
      -moz-animation-delay: 15s;
      animation-delay: 15s;
    }
    
    @-moz-keyframes slidein {
      from {
        -moz-transform: translate(1, -30em) scale(1.2);
      }
      to {
        -moz-transform: translate(1em, 1) scale(1.2);
      }
    }
    
    @-webkit-keyframes slidein {
      from {
        -webkit-transform: translate(0s, -20em) scale(1.2);
      }
      to {
        -webkit-transform: translate(0em, 0) scale(1.2);
      }
    }
    
    @keyframes slidein {
      from {
        transform: translate(0, -20em) scale(1.2);
      }
      to {
        transform: translate(0em, 0) scale(1.2);
      }
    }
    &lt;p class="rg5 slideInDown" id="text-animation"&gt;mobile&lt;/p&gt;

    【讨论】:

      【解决方案2】:

      您可以使用 setInterval 函数来保持 15 秒的时间间隔。

      setInterval(function()
      { 
           your_function(); 
      }, 15000);
      

      【讨论】:

      猜你喜欢
      • 2017-10-10
      • 1970-01-01
      • 1970-01-01
      • 2011-06-04
      • 2017-05-10
      • 2011-09-25
      • 2017-09-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多