Kann mir jemand helfen und erklären, warum dieser Mix, der früher funktioniert hat, verlangt, dass ich Vars definiere, bevor ich ihn in einen Conditional setze. Haben sie Sass etwas hinzugefügt? Bin ich verrückt?Spinner CSS3-Animation. Hat sich Sass verändert?
Ich verwende Visual Studio 2015 mit der Bundler/Compiler-Erweiterung. Ich kann nicht in dem Changelog für den Compiler oder der Sass-Dokumentation finden, wo oder ob das geändert worden ist. Alles, was ich weiß, ist, dass es über ein Jahr her ist, seit ich diesen Code berührt habe und plötzlich funktioniert es nicht mehr so.
Wenn ich $ from und $ zu Definitionen direkt nach der ersten @mixin-Zeile hinzufüge, funktioniert alles wieder. Die Originalversion dieses Mixins enthielt diese nicht und es funktionierte gut.
@mixin tspin($dir, $dur) {
$from: 0deg;
$to: 360deg;
@if $dir == cw {
$from: 0deg;
$to: 360deg;
}
@if $dir == ccw {
$from: 360deg;
$to: 0deg;
}
@keyframes tspin-#{$dir} { from { transform: rotate($from); } to { transform: rotate($to); } }
animation: tspin-#{$dir} #{$dur}s linear infinite;
}
Verbrauch:
@include tspin("cw", "3");
Ausgänge:
animation: tspin-cw 3s linear infinite;
Ich denke, irgendetwas nicht hat vor kurzem geändert. Sie sehen das gleiche Problem in diesem Thread (ab 2013) - http://stackoverflow.com/questions/15371332/sass-ignores-variables-defined-in-if-statement Wenn Ihre Variablen innerhalb des If/Else ein '! global' Schlüsselwort dann hätte es funktioniert, aber ich sehe das nicht in der Frage. – Harry