Heim >Web-Frontend >HTML-Tutorial >css3 同时加载两个动画_html/css_WEB-ITnose

css3 同时加载两个动画_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 11:24:231603Durchsuche

最近在做H5,遇到这样的需求(如题)

先上一部分代码:

.cur .p1d1d4{
  width: 3rem;
  margin: 2rem 5.3rem 0 0;
  -webkit-animation: p1d1d4 1s ease-out;
  animation: p1d1d4 1s ease-out;
}


@keyframes p1d1d4 {
  0% {
    margin: 2rem 10rem 0 0;
  }
  100% {
    margin: 2rem 5.3rem 0 0;
  }
}

@-webkit-keyframes p1d1d4{
  0% {
    margin: 2rem 10rem 0 0;
  }
  100% {
    margin: 2rem 5.3rem 0 0;
  }

  

正常情况下基本思路是: 

 监听webkitAnimationEnd动画结束以后再add另一个class

1 document.querySelector('.p1d1d4').addEventListener("webkitAnimationEnd", function(e){
2      this.classList.add('p1d1d4Scale')
3 })  

  这样的话两个 动画连接在一起(自己脑补效果),但是这样做有个问题是如果这个方案是单页面形式的,回到之前页面过后会发现这个页面始终保留在p1d1d4Scale的动画结束效果,如果想再次执行之前的效果的话,可能要把之前的class效果去掉然后再加上

  但是我想在一个class中实现这个效果怎么实现呢

pasting

  在这里我想到了transition

  简单介绍一下这个属性
  这个方法有4个属性

  transition-property     指定缓动的属性

  transition-duration     缓动的执行时间

  transition-timing-function  缓动类型

  transition-delay         在指定时间之后执行(延期执行) 

说道这里大家应该就懂了

.cur .p1d1d4{
  width: 3rem;
  margin: 2rem 5.3rem 0 0;
  -webkit-animation: p1d1d4 1s ease-out;
  animation: p1d1d4 1s ease-out;
  -webkit-transform: scale(1.3);
  -moz-transform: scale(1.3);
  -ms-transform: scale(1.3);
  -o-transform: scale(1.3);
  transform: scale(1.3);
  transition: all 1s ease-out 2s;
  -webkit-transition: all 1s ease-out 2s;
  -moz-transition: all 1s ease-out 2s;
  -o-transition: all 1s ease-out 2s;
  -ms-transition: all 1s ease-out 2s;
}

  动画结束之后2秒执行,分享到此结束 

从今天起我打算随心一些写博客,可能会基本的分享思路和方案或者技巧,言外之意就是可能会很简短,我上次的随笔 react demo是真东西,可以直接上手项目,全局ES6写法 webpack打包加载  热加载  react-router 总之汇集了一个小的demo,欢迎关注

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn