2012-05-15 11 views
73

मैं पृष्ठभूमि-स्थिति के अलावा सभी गुणों में एक सीएसएस संक्रमण लागू करना चाहता हूं। मैं इसे इस तरह से करने की कोशिश की:पृष्ठभूमि-स्थिति को छोड़कर मैं सभी गुणों में CSS3 संक्रमण कैसे लागू करूं?

.csstransitions a { 
    -webkit-transition: all 0.3s ease;     
    -moz-transition: all 0.3s ease;     
    -o-transition: all 0.3s ease; 
    -ms-transition: all 0.3s ease;   
    transition: all 0.3s ease; 
} 

.csstransitions a { 
    -webkit-transition: background-position 0s ease 0s;     
    -moz-transition: background-position 0s ease 0s;     
    -o-transition: background-position 0s ease 0s; 
    -ms-transition: background-position 0s ease 0s;   
    transition: background-position 0s ease 0s; 
} 

सबसे पहले मैं संक्रमण के लिए सभी गुण सेट करें और फिर मैं पूरी तरह से पृष्ठभूमि स्थिति संपत्ति के लिए संक्रमण के ऊपर लिख करने की कोशिश की।

हालांकि यह अन्य सभी गुणों को भी रीसेट करने लगता है - इसलिए मूल रूप से संक्रमणों में से कोई भी और नहीं होता है।

क्या सभी संपत्तियों को सूचीबद्ध किए बिना ऐसा करने का कोई तरीका है?

+1

हाय, मैं वास्तव में इस समस्या के लिए देख रहा हूँ। क्या आपको कोई स्वीकार्य उत्तर मिला? –

+0

क्षमा करें मुझे नहीं लगता कि यह संभव है। मेरा मानना ​​है कि मैं अंत में अलग-अलग गुणों को सूचीबद्ध कर रहा हूं: संक्रमण: चौड़ाई 0.3s, ऊंचाई 0.3s, पृष्ठभूमि रंग 0.3s, 0.3s बदलना; – Dine

उत्तर

96

यहाँ एक समाधान है कि भी Firefox पर काम करता है:

transition: all 0.3s ease, background-position 1ms; 

मैं एक छोटे से प्रदर्शन किया: http://jsfiddle.net/aWzwh/

+2

किसी कारण से '1ms' मेरे लिए काम नहीं किया, लेकिन' 0' किया। – Flimm

+0

@ फ़्लेमम, आप किस ब्राउज़र का उपयोग कर रहे हैं? और "काम नहीं किया" के साथ आपका क्या मतलब है, कुछ भी एनिमेट नहीं किया? –

+0

Google क्रोम संक्रमण के लिए स्वीकृत पैरामीटर के रूप में '0' नहीं लेता है लेकिन 1ms चाल चल रहा है –

2

प्रयास करें:

-webkit-transition: all .2s linear, background-position 0; 

यह कुछ इसी तरह पर मेरे लिए काम किया ..

+2

यह क्रोम – alex

+0

पर काम नहीं करता है पृष्ठभूमि-स्थिति से संक्रमण को हटाने के लिए 0 स्थिति = स्थिति को ठीक करने के लिए नहीं है। यही है ना ? –

+0

यह कभी काम नहीं कर सकता है। बाद में संक्रमण संपत्ति को फिर से परिभाषित करके, आप पिछली संक्रमण संपत्ति को पूरी तरह से ओवरराइड करते हैं, जैसे कि यह कभी अस्तित्व में नहीं था। वे समेकित नहीं होते हैं। – animuson

10

आशा देर होने के लिए नहीं। यह केवल एक लाइन का उपयोग करके पूरा किया जाता है!

-webkit-transition: all 0.2s ease-in-out, width 0, height 0, top 0, left 0; 
-moz-transition: all 0.2s ease-in-out, width 0, height 0, top 0, left 0; 
-o-transition: all 0.2s ease-in-out, width 0, height 0, top 0, left 0; 
transition: all 0.2s ease-in-out, width 0, height 0, top 0, left 0; 

यह क्रोम पर काम करता है। आपको सीएसएस गुणों को अल्पविराम से अलग करना होगा।

यहाँ एक काम कर उदाहरण है: http://jsfiddle.net/H2jet/

+1

यह फ़ायरफ़ॉक्स के लिए काम नहीं करता प्रतीत होता है। – Bryan

+5

मैं क्रोम पर यह कोशिश कर रहा हूं, और यह मेरे लिए काम नहीं कर रहा है। लगता है कि 'सभी' संक्रमण-संपत्ति अन्य सभी को ओवरराइड करने लगती है इससे कोई फर्क नहीं पड़ता। – animuson

+0

@animuson मेरी संपादित पोस्ट देखें, मैंने एक jsfiddle उदाहरण जोड़ा। वास्तव में, यह अभी तक मोज़िला में काम नहीं कर रहा है, लेकिन यह क्रोम –

3

इस प्रयास करें ...

* { 
    transition: all .2s linear; 
    -webkit-transition: all .2s linear; 
    -moz-transition: all .2s linear; 
    -o-transition: all .2s linear; 
} 
a { 
    -webkit-transition: background-position 1ms linear; 
    -moz-transition: background-position 1ms linear; 
    -o-transition: background-position 1ms linear; 
    transition: background-position 1ms linear; 
} 
0

आप मानक डब्ल्यू 3 सी तरीके का उपयोग करने का प्रयास कर सकते हैं:

.transition { transition: all 0.2s, top 0s, left 0s, width 0s, height 0s; } 

http://jsfiddle.net/H2jet/60/

संबंधित मुद्दे