-
-
Save Integralist/3931680 to your computer and use it in GitHub Desktop.
| @include keyframe(fadeout) { | |
| 0% { | |
| opacity: 1; | |
| } | |
| 100% { | |
| opacity: 0; | |
| } | |
| } | |
| @include keyframe(changecolour) { | |
| 0% { | |
| color: #000; | |
| } | |
| 100% { | |
| color: #FFF; | |
| } | |
| } |
| @mixin keyframe ($animation_name) { | |
| @-webkit-keyframes $animation_name { | |
| @content; | |
| } | |
| @-moz-keyframes $animation_name { | |
| @content; | |
| } | |
| @-o-keyframes $animation_name { | |
| @content; | |
| } | |
| @keyframes $animation_name { | |
| @content; | |
| } | |
| } |
| /* | |
| Example usage: | |
| @include animation(10s, 5s, changecolour) | |
| */ | |
| @mixin animation ($delay, $duration, $animation) { | |
| -webkit-animation-delay: $delay; | |
| -webkit-animation-duration: $duration; | |
| -webkit-animation-name: $animation; | |
| -webkit-animation-fill-mode: forwards; /* this prevents the animation from restarting! */ | |
| -moz-animation-delay: $delay; | |
| -moz-animation-duration: $duration; | |
| -moz-animation-name: $animation; | |
| -moz-animation-fill-mode: forwards; /* this prevents the animation from restarting! */ | |
| -o-animation-delay: $delay; | |
| -o-animation-duration: $duration; | |
| -o-animation-name: $animation; | |
| -o-animation-fill-mode: forwards; /* this prevents the animation from restarting! */ | |
| animation-delay: $delay; | |
| animation-duration: $duration; | |
| animation-name: $animation; | |
| animation-fill-mode: forwards; /* this prevents the animation from restarting! */ | |
| } |
@awesomephant opera 12 used -o- in the same page referenced http://caniuse.com/#feat=css-animation
@Ghodmode The animation include is not supposed to be placed in the keyframes mixin so we shouldn't see the problem you describe.
Nonetheless, any calls like @include transform(rotate(90deg)); within the keyframes mixing will show up with all the prefixes. That's unfortunate.
Trying to use this here http://sassmeister.com/gist/8458511 but $animation-name isn't compiling properly. Any ideas?
Figured it out. With Sass you have to use #{$animation-name} to force the correct output
mds: Geez, Thank you! I've been searching for this one (#{$animation-name}) for the last hour.
<3 this. thanks.
Why not let something like gulp-autoprefixer do the prefixing heavy-lifting for you and only insert the basic properties into the mixin?
I know this is a pretty old res, though it's missing animation-iteration-count, eg. use of infinite
I was having an error with this outputting the literal $animation_name into the CSS. The accepted answer to this StackOverflow question resolved it for me. You might consider incorporating it into the gist.
I don't understand the examples or their relationship
Thank you very much
The generated CSS will have all of the prefixed animation properties duplicated in all of the keyframes blocks. For example, @-webkit-keyframes will contain -moz-animation-* properties and @-moz-keyframes will contain -webkit-animation-*. I'm sure that works, but I wonder if there's a creative way to avoid that duplication.