2011-08-04 14 views
8

क्या कोई तरीका है कि मैं निम्नलिखित कर सकता हूं?सीएसएस फीड होवर पर पृष्ठभूमि छवियों के बीच फीका

मेरे पास एक पारदर्शी पीएनजी स्प्राइट है जो बाईं ओर एक मानक तस्वीर दिखाता है, और दाईं ओर होवर स्थिति के लिए एक तस्वीर दिखाता है।

क्या कोई तरीका है कि मैं छवि को बाएं छवि से दाएं छवि में फीका कर सकता हूं: केवल css3 संक्रमणों का उपयोग करके होवर करें? मैं निम्नलिखित की कोशिश की है, लेकिन यह काम नहीं करता है:

li{-webkit-transition:all 0.5s linear; -moz-transition:all 0.5s linear; -o-transition:all 0.5s linear; transition:all 0.5s linear;} 
li{background:url(/img/sprites.png) 0 -50px no-repeat;} 
li:hover{background:url(/img/sprites.png) 0 -150px no-repeat;} 

अब, ऊपर पृष्ठभूमि चेतन करता है, यह भर में छवि धूपदान। एक पैन के बजाय मुझे क्या पसंद है एक फीका या भंग प्रभाव है।

अद्यतन: मैं दो तत्वों को बनाने के लिए और सिर्फ अलग अस्पष्टता चेतन होने समाप्त हो गया। यह एक गड़बड़ है क्योंकि मुझे प्रत्येक तत्व के सटीक मार्जिन निर्दिष्ट करना है, लेकिन मुझे लगता है कि यह काम करेगा। सभी की मदद के लिए धन्यवाद :) कि अगर यह ठीक करता है या नहीं है, हालांकि

उत्तर

0
li{background:url(/img/sprites.png) 0 -50px no-repeat; background:rgba(80, 125, 200, 0.55);} 
li:hover{background:url(/img/sprites.png) 0 -150px no-repeat; background:rgba(100, 125, 175, 0);} 

li{background:url(/img/sprites.png) 0 -50px no-repeat; background-color:rgba(80, 125, 200, 0.55);} 
li:hover{background:url(/img/sprites.png) 0 -150px no-repeat; background-color:rgba(100, 125, 175, 0);} 

यकीन है कि नहीं होना चाहिए।

+0

दुर्भाग्य है कि इसे हल नहीं किया, लेकिन धन्यवाद। – Jack

+0

@ जैक यह जानने के बिना स्थिति को कल्पना करना मुश्किल है कि स्प्राइट क्या है ... क्या आपके पास कहीं भी साइट का विकास संस्करण है? –

3

आपने वास्तविक संक्रमण करने के लिए कोई कोड निर्दिष्ट नहीं किया है।

http://css3.bradshawenterprises.com/cfimg1/

अपने मंडराना शैली में इस आजमाएं:

-webkit-transition: opacity 1s ease-in-out; 
-moz-transition: opacity 1s ease-in-out; 
-o-transition: opacity 1s ease-in-out; 
-ms-transition: opacity 1s ease-in-out; 
transition: opacity 1s ease-in-out; 
+0

नहीं, मुझे खेद है, मैंने इसमें शामिल नहीं किया था। ओपेसिटी पूरे सूची तत्व को छुपाएगा हालांकि, मुझे पृष्ठभूमि छवि को स्थानांतरित करने के बजाय इसे एक पृष्ठभूमि स्थिति से दूसरे में फीका करने की आवश्यकता है। – Jack

+0

बस मेरे प्रश्न को अपडेट किया गया। उसके लिए माफ़ करना। – Jack

+1

हाँ। शायद कुछ पसंद है? http://jsfiddle.net/BYWW9/1/ –

1

इस पर एक नज़र डालें: http://jsfiddle.net/j5brM/1/

मैं इस सूट अपने सभी जरूरतों और उसके एक छोटा सा कम जटिल लगता है।

+0

प्रयास करने के लिए धन्यवाद, लेकिन यह अभी भी पृष्ठभूमि छवि को पैन करता है। मुझे जो चाहिए वह एक फीका प्रभाव है। – Jack

+0

मुझे खेद है! मैं भूल गया कि आपको किस प्रकार की एनीमेशन चाहिए। हालांकि मैंने ऐसा करने की कोशिश की: [http://jsfiddle.net/ZNsnV/](http://jsfiddle.net/ZNsnV/)। यह सबसे अच्छा है कि मैं केवल सीएसएस और पृष्ठभूमि छवियों के साथ मिल सकता हूं! – Rauzippy

+0

मैं दो तत्व बनाने और अलग-अलग अवसरों को सिर्फ एनिमेट करने के लिए समाप्त हुआ। यह एक गड़बड़ है क्योंकि मुझे प्रत्येक तत्व के सटीक मार्जिन निर्दिष्ट करना है, लेकिन मुझे लगता है कि यह काम करेगा। आपकी मदद के लिए धन्यवाद :) – Jack

1

मुझे नहीं लगता कि आप सीएसएस में केवल पृष्ठभूमि छवियों की अस्पष्टता को बदल सकते हैं, इसलिए जब तक आपके पास पृष्ठभूमि छवि (स्प्राइट की प्रत्येक स्थिति के लिए एक) के लिए दो अलग-अलग तत्व न हों और उनमें से दोनों की अस्पष्टता को बदल दें होवर, मुझे लगता है कि आप अटक गए हैं।

+0

मुझे इससे डर था। क्या शर्म की बात है कि उन्होंने इसे सीएसएस 3 में शामिल नहीं किया। – Jack

+0

ओह: यह सुझाव दिया गया है कि आप पृष्ठभूमि अस्पष्टता अनुकरण करने के लिए 'पहले' का उपयोग कर सकते हैं - http://nicolasgallagher.com/css-background-image-hacks/ –

+0

के निचले भाग के पास देखें, मैंने दो तत्वों को बनाने के लिए समाप्त किया और केवल अलग-अलग अवसरों को एनिमेट करें। यह एक गड़बड़ है क्योंकि मुझे प्रत्येक तत्व के सटीक मार्जिन निर्दिष्ट करना है, लेकिन मुझे लगता है कि यह काम करेगा। आपकी मदद के लिए धन्यवाद :) – Jack

4

इस विषय पर ताजा खबर:

Chrome 19 और नए का समर्थन करता है पृष्ठभूमि छवि संक्रमण:

डेमो: http://dabblet.com/gist/1991345

अतिरिक्त जानकारी: http://oli.jp/2010/css-animatable-properties/

+1

+1 अब तक का सबसे अच्छा जवाब है। लेकिन यह केवल क्रोम में काम कर रहा है –

+0

सच है, लेकिन अन्य क्रॉस ब्राउज़र समर्थन के बारे में क्या ?? –

0

मैं जानता हूँ कि यह हो सकता है देर से एक टैड हो। लेकिन मैं एक ही मुद्दे के साथ लंबे समय से संघर्ष कर रहा था। पारदर्शी sprites के साथ भी कई समाधान काम नहीं लग रहा है।

मैं क्या इस

एचटीएमएल

<div class="sprite-one"> 
    <span class="foo"></span><span class="zen"></span> 
</div> 

सीएसएस

.sprite-one { 
height: 50px 
width: 50px 
} 
.sprite-one span { 
width: 50px; 
height: 50px; 
display: block; 
position: absolute; 
} 
.foo, .zen { 
background-image: url(sprites.png) no-repeat; 
-webkit-transition: opacity .6s ease-in-out; 
-moz-transition: opacity .6s ease-in-out; 
-o-transition: opacity .6s ease-in-out; 
transition: opacity .6s ease-in-out; 
} 
.foo { 
background-position: 0 0; 
opacity: 1; 
} 
.zen { 
background-position: -50px 0; 
opacity: 0; 
} 
.sprite-one:hover .foo { 
opacity: 0; 
} 
.sprite-one:hover .zen { 
opacity: 1; 
} 

यह एक शुद्ध सीएसएस रास्ता & है कोडिंग का एक बहुत का एक सा है .. लेकिन वांछित प्रभाव हासिल करने का एकमात्र तरीका लगता है! आशा है कि इस पर ठोकरें भी इससे कुछ मदद पा सकते हैं!

0
<li class="image transition"></li> 

css: 
.image{ 
background-image: url("some/file/path.png"); 
background-repeat: no-repeat; 
width: XXpx; 
height: XXpx; 
background-position: center center; 
background-size: cover; 
} 

/* DRY */ 
.transition{ 
transition: background 0.6s; 
-webkit-transition: background 0.6s; 
} 

.image:hover{ 
background-image: url("some/file/path_hoverImage.png"); 
} 
-1

सीएसएस: -

li { पृष्ठभूमि: यूआरएल (http://oakdale.squaresystem.co.uk/images/solutions.png) नहीं दोहराने बाईं केंद्र; पृष्ठभूमि आकार: 89 पीएक्स; पैडिंग: 54 पीएक्स 0 54 पीएक्स 130 पीएक्स; वेबकिट-संक्रमण: सभी 0.5s रैखिक; -मोज़-संक्रमण: सभी 0.5s रैखिक; -o-transition: सभी 0.5s रैखिक; संक्रमण: सभी 0.5s रैखिक; }

ली: मंडराना { पृष्ठभूमि का आकार: उनका कहना है कि बाहर के लिए 50px }

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