[英]SASS mixing for CSS animations
我對sass相當陌生,但是我試圖將頭放在創建有用的mixin上。
我正在嘗試為transition
屬性創建基本混合,其中將包括帶有前綴的舊版瀏覽器的后備。
我試圖使用這樣的東西:
@mixin transition($property, $duration, $timing-function, $delay) {
-webkit-transition: $property, $duration, $timing-function, $delay;
-moz-transition: $property, $duration, $timing-function, $delay;
-o-transition: $property, $duration, $timing-function, $delay;
transition: $property, $duration, $timing-function, $delay;
}
但這顯然不提供前綴,所以我試圖做類似-webkit-transition: -webkit-$property, $duration, $timing-function, $delay;
事情-webkit-transition: -webkit-$property, $duration, $timing-function, $delay;
,但這似乎也不起作用。
如何在變量中使用供應商前綴創建混合?
我最終在mixin中使用了@if
語句,如本答案所述 。
在我的特定情況下,我擔心transform
屬性,因為在2017年回答此問題時,我不再需要所有以前的供應商前綴。 只是-webkit 。
這是mixin:
@mixin transition($property, $duration, $timing-function, $delay) {
@if ($property == 'transform') {
-webkit-transition: -webkit-transform $duration $timing-function $delay;
transition: -webkit-transform $duration $timing-function $delay;
transition: transform $duration $timing-function $delay;
transition: transform $duration $timing-function $delay, -webkit-transform $duration $timing-function $delay;
} @else {
-webkit-transition: $property $duration $timing-function $delay;
transition: $property $duration $timing-function, $delay;
}
}
像這樣使用它:
div {
color: red;
@include transition(transform, 500ms, ease, 0);
}
將編譯為此:
div {
color: red;
-webkit-transition: -webkit-transform 500ms ease 0;
transition: -webkit-transform 500ms ease 0;
transition: transform 500ms ease 0;
transition: transform 500ms ease 0, -webkit-transform 500ms ease 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.