यहां मानक सीएसएस है जो मैं उत्पादन करने की कोशिश कर रहा हूं लेकिन काम करने के लिए एसएएसएस मिक्सिन का उपयोग करना चाहता हूं।एनीमेशन कीफ्रेम के लिए सैस मिक्सिन जिसमें एकाधिक चरणों और संपत्ति को बदलना
मानक सीएसएस
@-webkit-keyframes crank-up {
100% { -webkit-transform: rotate(360deg);}
}
@-moz-keyframes crank-up {
100% { -moz-transform: rotate(360deg);}
}
@-o-keyframes crank-up {
100% { -o-transform: rotate(360deg);}
}
keyframes crank-up {
100% { transform: rotate(360deg);}
}
मैं जो नीचे दिखाया गया है निम्नलिखित पोस्ट SASS keyframes not compiling as wanted में के रूप में ही mixin उपयोग कर रहा हूँ।
Mixin
@mixin keyframes($name) {
@-webkit-keyframes #{$name} {
@content;
}
@-moz-keyframes #{$name} {
@content;
}
@-ms-keyframes #{$name} {
@content;
}
@keyframes #{$name} {
@content;
}
}
ऊपर ठीक है, जब तक कि मुख्य-फ़्रेम में से कोई भी एक संपत्ति है कि एक विक्रेता उपसर्ग की आवश्यकता है शामिल हैं। ट्रांसफॉर्म प्रॉपर्टी की तरह सभी विक्रेता प्रीफिक्स्ड कीफ्रेम (इस मामले में) -webkit-prefix के साथ लागू होते हैं। उदाहरण के लिए:
एससीएसएस
@include keyframes(crank-up) {
100% { -webkit-transform: rotate(360deg);}
}
सीएसएस
@-webkit-keyframes crank-up { 100% { -webkit-transform: rotate(360deg); } }
@-moz-keyframes crank-up { 100% { -webkit-transform: rotate(360deg); } }
@-ms-keyframes crank-up { 100% { -webkit-transform: rotate(360deg); } }
@keyframes crank-up { 100% { -webkit-transform: rotate(360deg); } }
सूचना से ऊपर, एक -moz-फ़्रेम के साथ -webkit-।
बदल Mixin
@mixin keyframes($first-name, $last-name, $argument) {
@-webkit-keyframes #{$first-name} {
-webkit-#{$last-name}: #{$argument};
}
@-moz-keyframes #{$first-name} {
-moz-#{$last-name}: #{$argument};
}
@-o-keyframes #{$first-name} {
-o-#{$last-name}: #{$argument};
}
@keyframes #{$first-name} {
#{$last-name}: #{$argument};
}
}
की तरह लग रही एससीएसएस
mixin के लिए एक कॉल के साथ: -moz- होना चाहिएतो, तो मेरा पहला विचार करने के लिए ऊपर mixin को बदलने के लिए था
@include keyframes(crank-up, transform, rotate(360deg)) { }
सीएसएस
@-webkit-keyframes crank-up { -webkit-transform: rotate(360deg); }
@-moz-keyframes crank-up { -moz-transform: rotate(360deg); }
@-o-keyframes crank-up { -o-transform: rotate(360deg); }
@keyframes crank-up { transform: rotate(360deg); }
यह ठीक काम करता है अगर केवल एक कीफ्रेम 'मंच' है (मूल कोड में देखें - पृष्ठ के शीर्ष पर, केवल 100% चिह्न है), क्षमा करें अगर मेरी शब्दावली कुंजीफ्रेम 'चरण' के संदर्भ में थोड़ा सा है ।
समस्या
मैं ऊपर की तरह एक mixin की तरह कुछ के साथ काम करना चाहते हैं।
@-webkit-keyframes crank-up {
20%,
40% { -webikit-transform: translateY(34px); }
80% { opacity: .8; }
100% { -webkit-transform: rotate(360deg);}
}
मैंने दो कम्पास एनिमेट प्लगइन्स में भी देखा है; compass-animation और नए compass-animate लेकिन वास्तव में यह सुनिश्चित नहीं है कि ये मदद कर सकते हैं। मुझे एक वैरिएबल में जोड़ने और मिश्रण के साथ इसके लिए परीक्षण करने का कुछ तरीका चाहिए, लेकिन यह नहीं पता कि मिश्रित में चर को पार करना संभव है या नहीं।
किसी भी मदद की बहुत सराहना की। धन्यवाद
मैं निम्नलिखित के साथ खेल रहा हूं लेकिन न तो काम करता हूं, सिर्फ सोचा कि मैं उन्हें यह देखने के लिए जोड़ दूंगा कि कोई यह जानता है कि मैं कहां गलत हूं।
प्रायोगिक mixins:
@mixin vendor-prefix($name, $argument, $webkit: "-webkit-", $moz: "-moz-",$o: "-o-", $stale: ""){
#{$webkit}: #{$name}: #{$argument};
#{$moz}: #{$name}: #{$argument};
#{$o}: #{$name}: #{$argument};
#{$stale}: #{$name}: #{$argument};
}
@mixin vendor-prefix($last-name, $argument){
@if $name == webkit {
-webkit-#{$name}: #{$argument};
} @else if $name == moz {
-moz-#{$name}: #{$argument};
} @else if $name == o {
-o-#{$name}: #{$argument};
} @else {
#{$name}: #{$argument};
}
}
धन्यवाद, लेकिन मैं थोड़ा उलझन में हूं। प्रत्येक keyframe चरण के भीतर -moz- और -o-keyframe उपसर्ग अपने स्वयं के परिवर्तन उपसर्ग के साथ कहां हैं। – fidev
'@ -मोज़-कीफ्रेम क्रैंक-अप { 20%, 40% {-मोज़-ट्रांसफॉर्म: अनुवाद (34 पीएक्स); } 80% {अस्पष्टता: .8; } 100% {-o-transform: rotate (360deg);} } 'और' @ -o-keyframes क्रैंक-अप { 20%, 40% {-o-transform: translateY (34px); } 80% {अस्पष्टता: .8; } 100% {-o-transform: rotate (360deg);} } ' – fidev
ऑटोप्रिफ़िक्सर के साथ आप उन ब्राउज़र को निर्दिष्ट कर सकते हैं जिन्हें आप अपनी प्रोजेक्ट में लक्षित करना चाहते हैं और प्रत्येक ब्राउज़र के संस्करणों को लक्षित करना चाहते हैं। मेरे पास डिफ़ॉल्ट सेटिंग्स हैं जो प्रत्येक वेब ब्राउज़र के पिछले दो संस्करणों का समर्थन करती हैं (पिछले दो संस्करणफ़ीयरफ़ॉक्स को कीफ्रेम के लिए उपसर्गियों की आवश्यकता नहीं है और [ओपेरा अब वेबकिट का उपयोग करता है] (http://mashable.com/2013/02/13/opera-is -moving करने वाली वेबकिट /))। अगर आप अपनी वरीयताओं को संपादित करना चाहते हैं, तो [गाइड] (https://github.com/ai/autoprefixer#browsers) –