2013-05-23 14 views
6

कोई विचार क्यों यह क्रोम में काम करता है लेकिन सफारी नहीं?सीएसएस चमक एनीमेशन कीफ्रेम क्रोम पर काम करते हैं लेकिन आईओएस सफारी नहीं

http://jsfiddle.net/tTxMV/

सीएसएस:

@-webkit-keyframes glow { 
    0% { 
     opacity: 0; 
    } 
    50% { 
     opacity: 1; 
    } 
    100% { 
     opacity: 0; 
    } 
} 
.glow:after { 
    -webkit-animation-name:    glow; 
    -webkit-animation-duration:   1s; 
    -webkit-animation-iteration-count: infinite; 
    -webkit-animation-timing-function: ease-in-out; 
    background: rgba(255,255,255,0.5); 
    border: 1px solid rgba(255,255,255,0.5); 
    position: absolute; 
    top: -1px; 
    left: -1px; 
    right: -1px; 
    bottom: -1px; 
    content: ""; 
    border-radius: 3px; 
    opacity: 0; 
} 

#btn { 
    background: red; 
    text-align: center; 
    font-size: 100px; 
    color: white; 
    line-height: 100px; 
} 

HTML:

<div id="btn" class="glow"> 
    Start 
</div> 

उत्तर

5

खैर, यह नहीं वास्तव में है कि आईओएस छद्म तत्वों पर एनिमेशन का समर्थन नहीं करता है, यह अधिक वेबकिट से एक बग था। वे solved it in January और क्रोम के तेज़ अपडेट के कारण यह क्रोम में काम करता है, लेकिन सफारी, न तो मोबाइल और न ही डेस्कटॉप संस्करण पर।

छद्म-तत्व के बजाय पूरे तत्व (#btn) पर एनीमेशन कार्य करें।

.glow:after { 
    background: rgba(255,255,255,0.5); 
    border: 1px solid rgba(255,255,255,0.5); 
    position: absolute; 
    top: -1px; 
    left: -1px; 
    right: -1px; 
    bottom: -1px; 
    content: ""; 
    border-radius: 3px; 
} 

#btn { 
    -webkit-animation-name:    glow; 
    -webkit-animation-duration:   1s; 
    -webkit-animation-iteration-count: infinite; 
    -webkit-animation-timing-function: ease-in-out; 
    background: red; 
    text-align: center; 
    font-size: 100px; 
    color: white; 
    line-height: 100px; 
    opacity: 0; 
} 

http://jsfiddle.net/tTxMV/2/

+0

उत्तर के लिए धन्यवाद, लेकिन की बात ': after' छद्म तत्व एक सफेद 'मुखौटा' जोड़ने के लिए इतनी चमक किसी भी रंग पर काम होता था। इसके साथ, मेरे पूरे तत्व की अस्पष्टता कम हो गई है जिससे यह चमकने की बजाय अधिक सुस्त दिखती है। क्या बटन के सामने कोई तत्व जोड़ने के बिना मुझे सफेद मास्क के रूप में ऐसा करने का कोई तरीका है? – Garrett

+1

@ गेटेट मैंने अभी अपना बेवकूफ़ अपडेट किया है, हो सकता है कि आप ऐसा कुछ कर रहे हों: http://jsfiddle.net/tTxMV/4। एचटीएमएल पर कोई अतिरिक्त तत्व नहीं, लेकिन सीएसएस पर थोड़ा और काम। अतिरिक्त मार्कअप जोड़ने के बिना, मुझे लगता है कि यह प्राप्त करने का यह सबसे आसान तरीका होगा और आपके कोड को कुछ पुन: प्रयोज्य रहने दें, बिल्कुल छद्म-तत्वों का उपयोग करने की तरह नहीं। कभी-कभी हमें ब्राउज़र जीतने के लिए मजबूर होना पड़ता है: '( – pzin

+0

मुझे लगता है कि यह सफारी बग के साथ जितना करीब है। धन्यवाद! – Garrett

3

आईओएस छद्म वर्गों पर एनिमेशन का समर्थन नहीं करता।

बग को 2 जनवरी 2013 (http://trac.webkit.org/changeset/138632) पर वेबकिट में तय किया गया था, इसलिए हम उम्मीद कर सकते हैं कि यह आईओएस 7 और चालू में काम करे।

अभी के लिए, क्या आप सीधे तत्व पर एनीमेशन का उपयोग नहीं कर सकते हैं (यानी .glow:after.glow के लिए स्वैप करें, और इसे अस्पष्टता के बजाय आरजीबीए एनीमेशन के रूप में बदलें)?

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