zoukankan      html  css  js  c++  java
  • #Fixed# easy-animation | Animation for Sass

    原文链接:http://www.cnblogs.com/maplejan/p/3659830.html

    主要修复3.4版本后变量作用域的问题。

    代码如下:

      1 /* easy-animation.scss */
      2 
      3 
      4 // easy-animation
      5 // Author: Maple Jan
      6 // Date: 2016-10-21
      7 
      8 
      9 // Support browser's private prefix.
     10 $ea-prefix-for-webkit:       true !default;
     11 $ea-prefix-for-mozilla:      true !default;
     12 $ea-prefix-for-microsoft:    true !default;
     13 $ea-prefix-for-opera:        true !default;
     14 $ea-prefix-for-spec:         true !default; // required for keyframe mixin
     15 
     16 
     17 // Disable all browser's private prefix.
     18 @mixin ea-disable-prefix-for-all() {
     19   $ea-prefix-for-webkit:    false !global;
     20   $ea-prefix-for-mozilla:   false !global;
     21   $ea-prefix-for-microsoft: false !global;
     22   $ea-prefix-for-opera:     false !global;
     23   $ea-prefix-for-spec:      false !global;
     24 }
     25 
     26 
     27 // Example usage:
     28 // @include ea-transition(all 2s ease 0s);
     29 @mixin ea-transition($value, $prefixs: webkit moz ms o spec) {
     30   @each $prefix in $prefixs {
     31     @if $prefix == webkit {
     32       @if $ea-prefix-for-webkit {
     33         -webkit-transition: $value;
     34       }
     35     }
     36     @else if $prefix == moz {
     37       @if $ea-prefix-for-mozilla {
     38         -moz-transition: $value;
     39       }
     40     }
     41     @else if $prefix == ms {
     42       @if $ea-prefix-for-microsoft {
     43         -ms-transition: $value;
     44       }
     45     }
     46     @else if $prefix == o {
     47       @if $ea-prefix-for-opera {
     48         -o-transition: $value;
     49       }
     50     }
     51     @else if $prefix == spec {
     52       @if $ea-prefix-for-spec {
     53         transition: $value;
     54       }
     55     }
     56     @else  {
     57       @warn "Unrecognized prefix: #{$prefix}";
     58     }
     59   }
     60 }
     61 
     62 
     63 // Example usage:
     64 // @include ea-transform(scale(1));
     65 @mixin ea-transform($value, $prefixs: webkit moz ms o spec) {
     66   @each $prefix in $prefixs {
     67     @if $prefix == webkit {
     68       @if $ea-prefix-for-webkit {
     69         -webkit-transform: $value;
     70       }
     71     }
     72     @else if $prefix == moz {
     73       @if $ea-prefix-for-mozilla {
     74         -moz-transform: $value;
     75       }
     76     }
     77     @else if $prefix == ms {
     78       @if $ea-prefix-for-microsoft {
     79         -ms-transform: $value;
     80       }
     81     }
     82     @else if $prefix == o {
     83       @if $ea-prefix-for-opera {
     84         -o-transform: $value;
     85       }
     86     }
     87     @else if $prefix == spec {
     88       @if $ea-prefix-for-spec {
     89         transform: $value;
     90       }
     91     }
     92     @else  {
     93       @warn "Unrecognized prefix: #{$prefix}";
     94     }
     95   }
     96 }
     97 
     98 
     99 // Example usage:
    100 // @include ea-animation(wrap_s0_p1, 2s, ease, 0s, infinite);
    101 @mixin ea-animation($name, $duration, $function: ease, $delay: 0s, $count: infinite) {
    102   -webkit-animation: $name $duration $function $delay $count;
    103   -moz-animation: $name $duration $function $delay $count;
    104   -ms-animation: $name $duration $function $delay $count;
    105   -o-animation: $name $duration $function $delay $count;
    106   animation: $name $duration $function $delay $count;
    107 }
    108 
    109 
    110 // Example usage:
    111 // @include ea-keyframes(wrap_s0_p1) {
    112 //   0% {
    113 //     opacity: 1;
    114 //     @include ea-transform(scale(1));
    115 //   }
    116 //   50% {
    117 //     opacity: 0.8;
    118 //     @include ea-transform(scale(0.8));
    119 //   }
    120 //   100% {
    121 //     opacity: 1;
    122 //     @include ea-transform(scale(1));
    123 //   }
    124 // }
    125 @mixin ea-keyframes($name) {
    126   $_ea-prefix-for-webkit:       $ea-prefix-for-webkit;
    127   $_ea-prefix-for-mozilla:      $ea-prefix-for-mozilla;
    128   $_ea-prefix-for-microsoft:    $ea-prefix-for-microsoft;
    129   $_ea-prefix-for-opera:        $ea-prefix-for-opera;
    130   $_ea-prefix-for-spec:         $ea-prefix-for-spec;
    131 
    132 
    133   @if $_ea-prefix-for-webkit {
    134     @include ea-disable-prefix-for-all();
    135     $ea-prefix-for-webkit: true !global;
    136     @-webkit-keyframes #{$name} {
    137       @content;
    138     }
    139   }
    140   @if $_ea-prefix-for-mozilla {
    141     @include ea-disable-prefix-for-all();
    142     $ea-prefix-for-mozilla: true !global;
    143     @-moz-keyframes #{$name} {
    144       @content;
    145     }
    146   }
    147   @if $_ea-prefix-for-microsoft {
    148     @include ea-disable-prefix-for-all();
    149     $ea-prefix-for-microsoft: true !global;
    150     @-ms-keyframes #{$name} {
    151       @content;
    152     }
    153   }
    154   @if $_ea-prefix-for-opera {
    155     @include ea-disable-prefix-for-all();
    156     $ea-prefix-for-opera: true !global;
    157     @-o-keyframes #{$name} {
    158       @content;
    159     }
    160   }
    161   @if $_ea-prefix-for-spec {
    162     @include ea-disable-prefix-for-all();
    163     $ea-prefix-for-spec: true !global;
    164     @keyframes #{$name} {
    165       @content;
    166     }
    167   }
    168 
    169 
    170   $ea-prefix-for-webkit:    $_ea-prefix-for-webkit !global;
    171   $ea-prefix-for-mozilla:   $_ea-prefix-for-mozilla !global;
    172   $ea-prefix-for-microsoft: $_ea-prefix-for-microsoft !global;
    173   $ea-prefix-for-opera:     $_ea-prefix-for-opera !global;
    174   $ea-prefix-for-spec:      $_ea-prefix-for-spec !global;
    175 }
  • 相关阅读:
    拉格朗日乘子法
    EM算法
    最大似然估计
    理解先验概率 后验概率 似然函数
    似然函数理解
    markdown 语法规则
    bash101总结
    hmm和Veterbi算法(一)
    Kaldi 安装
    通俗的解释交叉熵与相对熵
  • 原文地址:https://www.cnblogs.com/maplejan/p/5985705.html
Copyright © 2011-2022 走看看