vue的列表加载过渡动画

vue的列表加载过渡动画_第1张图片

  • 效果实现的方法就是sass for loop方法(参考文章:http://thesassway.com/intermediate/if-for-each-while)
    只要的重点就是 sass的写法

重点代码:

html :   :class="`animation-${index+1}`"
css :
   $grid-columns: 10;
  @for $i from 1 through $grid-columns {
    $time: ($i * 100+200) + ms;
    .animation-#{$i} {
      animation-delay: $time;
    }
  }

完整代码如下:






  • 这里再次介绍一个 Sass if else 的用法(针对上述的代码修改)
  @for $i from 1 through $grid-columns {
    $time: ($i * 100+200) + ms;
    .animation-#{$i} {
      transition: all 0.5s linear;
      animation-duration: 0.5s;
      animation-fill-mode: both;
      animation-delay: $time;
      @if $i%2==0 {
        animation-name: toLeft;
      } @else {
        animation-name: toRight;
      }
    }
  }

css:

// 方向 右-->左
@keyframes toLeft {
  0% {
    opacity: 0;
    transform: translate3d(-30px, 0, 0);
  }

  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
// 方向 左-->右
@keyframes toRight {
  0% {
    opacity: 0;
    transform: translate3d(30px, 0, 0);
  }

  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

效果图:
vue的列表加载过渡动画_第2张图片

  • @while的简单用法:
$types: 4
$type-width: 20px

@while $types > 0
  .while-#{$types}
    width: $type-width + $types
  $types: $types - 1

转化成以下代码

.while-4 {
  width: 24px;
}

.while-3 {
  width: 23px;
}

.while-2 {
  width: 22px;
}

.while-1 {
  width: 21px;
}

你可能感兴趣的:(css样式,vue2.0)