2013-05-23 20 views
6

これはSafariのChromeでなく、働く理由を任意のアイデア?CSSグローアニメーションキーフレームは、Chromeで動作しますが、ないのiOSのSafari

http://jsfiddle.net/tTxMV/

CSS:

@-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

まあ、それはiOSのは、擬似要素にアニメーションをサポートしていない、それのWebKitからより多くのバグだったことを本当にではありません。それらはsolved it in Januaryであり、Chromeの高速アップデートのためChromeで動作しますが、Safariでは動作しません。モバイルバージョンでもデスクトップバージョンでもありません。

ではなく、疑似要素の全体要素(#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'擬似要素は、グローがどの色に動作しますので、白の「マスク」を追加することでした。これにより、要素全体の不透明度が低下し、光らせるのではなく、より鈍く見えるようになります。ボタンの前に要素を追加しなくても、白いマスクとしてこれを行う方法はありますか? http://jsfiddle.net/tTxMV/4: – Garrett

+1

@Garrett私はちょうどあなたのフィドルを更新し、多分あなたは、このような何かを行うことでOKになります。 HTMLに余分な要素はありませんが、CSSでもう少し作業します。余分なマークアップを追加することなく、これを達成する最も簡単な方法であり、コードを再利用可能なままにしておくことができます。時々、私たちはブラウザを獲得できるように強制されています。!私はそれがSafariのバグを取得すると、これは限り近いと思います( ' – pzin

+0

を感謝 – Garrett

3

のiOSは、擬似クラスのアニメーションをサポートしていません。

バグが1月2日2013(http://trac.webkit.org/changeset/138632)上のWebkitに固定されたので、私たちは、これは上のiOS 7で動作するように期待するかもしれません。

今のところ、要素のアニメーションを直接使用することはできません(つまり、.glow.glow:afterを交換し、不透明ではなくrgbaアニメーションに変更します)。

関連する問題