2016-06-26 6 views
2

次のCSSコードがあります。ホバー上の要素に適用される素晴らしいソナーエフェクトです。 Firefox、Opera、Chromeの場合は でもうまく動作しますが、IE(10+)やEdgeでも動作させることはできません。IEとEdgeではCSSアニメーションが機能しません

body { 
 
    background-color: #cccccc; 
 
} 
 
.text { 
 
    position: realtive; 
 
    display: block; 
 
    width: 85px; 
 
    margin: 150px auto 0px; 
 
    background-color: #; 
 
} 
 
.content { 
 
    display: block; 
 
    position: relative; 
 
    height: 100px; 
 
    width: 100px; 
 
    border: 2px solid white; 
 
    border-radius: 100%; 
 
    margin: 20px auto; 
 
} 
 
.icon { 
 
    display: block; 
 
    height: 100px; 
 
    width: 100px; 
 
    background-color: red; 
 
} 
 
.whiteSonarEffect .icon { 
 
    border-radius: 100%; 
 
    position: relative; 
 
} 
 
.whiteSonarEffect .icon:after { 
 
    position: absolute; 
 
    width: 100%; 
 
    height: 100%; 
 
    border-radius: 100%; 
 
    content:''; 
 
    -webkit-box-sizing: content-box; 
 
    -moz-box-sizing: content-box; 
 
    box-sizing: content-box; 
 
    top: 0; 
 
    left: 0; 
 
} 
 
.whiteSonarEffect .icon:hover { 
 
    color: #fff; 
 
} 
 
.whiteSonarEffect .content:hover .icon:after { 
 
    -webkit-animation: whiteSonarEffect 1.3s ease-out 75ms; 
 
    -moz-animation: whiteSonarEffect 1.3s ease-out 75ms; 
 
    -o-animation: whiteSonarEffect 1.3s ease-out 75ms; 
 
    animation: whiteSonarEffect 1.3s ease-out 75ms; 
 
} 
 
@-webkit-keyframes whiteSonarEffect { 
 
    0% { 
 
     opacity: 0.3; 
 
    } 
 
    40% { 
 
     opacity: 0.5; 
 
     box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.1), 0 0 10px 10px #fff, 0 0 0 10px rgba(255, 255, 255, 0.5); 
 
    } 
 
    100% { 
 
     box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.1), 0 0 10px 10px #fff, 0 0 0 10px rgba(255, 255, 255, 0.5); 
 
     -webkit-transform: scale(1.5); 
 
     opacity: 0; 
 
    } 
 
} 
 
@-moz-keyframes whiteSonarEffect { 
 
    0% { 
 
     opacity: 0.3; 
 
    } 
 
    40% { 
 
     opacity: 0.5; 
 
     box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.1), 0 0 10px 10px #fff, 0 0 0 10px rgba(255, 255, 255, 0.5); 
 
    } 
 
    100% { 
 
     box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.1), 0 0 10px 10px #fff, 0 0 0 10px rgba(255, 255, 255, 0.5); 
 
     -moz-transform: scale(1.5); 
 
     opacity: 0; 
 
    } 
 
} 
 
@-o-keyframes whiteSonarEffect { 
 
    0% { 
 
     opacity: 0.3; 
 
    } 
 
    40% { 
 
     opacity: 0.5; 
 
     box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.1), 0 0 10px 10px #fff, 0 0 0 10px rgba(255, 255, 255, 0.5); 
 
    } 
 
    100% { 
 
     box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.1), 0 0 10px 10px #fff, 0 0 0 10px rgba(255, 255, 255, 0.5); 
 
     -o-transform: scale(1.5); 
 
     opacity: 0; 
 
    } 
 
} 
 
@keyframes whiteSonarEffect { 
 
    0% { 
 
     opacity: 0.3; 
 
    } 
 
    40% { 
 
     opacity: 0.5; 
 
     box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.1), 0 0 10px 10px #fff, 0 0 0 10px rgba(255, 255, 255, 0.5); 
 
    } 
 
    100% { 
 
     box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.1), 0 0 10px 10px #fff, 0 0 0 10px rgba(255, 255, 255, 0.5); 
 
     transform: scale(1.5); 
 
     opacity: 0; 
 
    } 
 
}
<div class="whiteSonarEffect"> 
 
    <div class="text"><h3>Hover Me</h3></div> 
 
<div class="content"> 
 
    <div class="icon"></div> 
 
</div> 
 
</div>

あなたはCodePen上でそれを見ることができます:http://codepen.io/ivanchi/pen/YWNjVN は、任意の提案に感謝されるだろう。

答えて

2

私はこれまでのところ(いつどこで覚えていないのか)同じような問題に遭遇しましたが、キーフレームにもbox-shadowを設定する必要があります。下のスニペットでは、40%キーフレームと同じbox-shadowを追加しましたが、すべてのシャドウに対してアルファ= 0の色を指定して、それが不可視であることを確認しています。

IE11、Edge、Chrome、Opera、Firefoxで動作します。

body { 
 
    background-color: #cccccc; 
 
} 
 
.text { 
 
    position: realtive; 
 
    display: block; 
 
    width: 85px; 
 
    margin: 150px auto 0px; 
 
    background-color: #; 
 
} 
 
.content { 
 
    display: block; 
 
    position: relative; 
 
    height: 100px; 
 
    width: 100px; 
 
    border: 2px solid white; 
 
    border-radius: 100%; 
 
    margin: 20px auto; 
 
} 
 
.icon { 
 
    display: block; 
 
    height: 100px; 
 
    width: 100px; 
 
    background-color: red; 
 
} 
 
.whiteSonarEffect .icon { 
 
    border-radius: 100%; 
 
    position: relative; 
 
} 
 
.whiteSonarEffect .icon:after { 
 
    position: absolute; 
 
    width: 100%; 
 
    height: 100%; 
 
    border-radius: 100%; 
 
    content: ''; 
 
    -webkit-box-sizing: content-box; 
 
    -moz-box-sizing: content-box; 
 
    box-sizing: content-box; 
 
    top: 0; 
 
    left: 0; 
 
} 
 
.whiteSonarEffect .icon:hover { 
 
    color: #fff; 
 
} 
 
.whiteSonarEffect .content:hover .icon:after { 
 
    -webkit-animation: whiteSonarEffect 1.3s ease-out 75ms; 
 
    -moz-animation: whiteSonarEffect 1.3s ease-out 75ms; 
 
    -o-animation: whiteSonarEffect 1.3s ease-out 75ms; 
 
    animation: whiteSonarEffect 1.3s ease-out 75ms; 
 
} 
 
@-webkit-keyframes whiteSonarEffect { 
 
    0% { 
 
    opacity: 0.3; 
 
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0), 0 0 10px 10px rgba(255, 255, 255, 0), 0 0 0 10px rgba(255, 255, 255, 0); 
 
    } 
 
    40% { 
 
    opacity: 0.5; 
 
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.1), 0 0 10px 10px #fff, 0 0 0 10px rgba(255, 255, 255, 0.5); 
 
    } 
 
    100% { 
 
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.1), 0 0 10px 10px #fff, 0 0 0 10px rgba(255, 255, 255, 0.5); 
 
    -webkit-transform: scale(1.5); 
 
    opacity: 0; 
 
    } 
 
} 
 
@-moz-keyframes whiteSonarEffect { 
 
    0% { 
 
    opacity: 0.3; 
 
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0), 0 0 10px 10px rgba(255, 255, 255, 0), 0 0 0 10px rgba(255, 255, 255, 0); 
 
    } 
 
    40% { 
 
    opacity: 0.5; 
 
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.1), 0 0 10px 10px #fff, 0 0 0 10px rgba(255, 255, 255, 0.5); 
 
    } 
 
    100% { 
 
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.1), 0 0 10px 10px #fff, 0 0 0 10px rgba(255, 255, 255, 0.5); 
 
    -moz-transform: scale(1.5); 
 
    opacity: 0; 
 
    } 
 
} 
 
@-o-keyframes whiteSonarEffect { 
 
    0% { 
 
    opacity: 0.3; 
 
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0), 0 0 10px 10px rgba(255, 255, 255, 0), 0 0 0 10px rgba(255, 255, 255, 0); 
 
    } 
 
    40% { 
 
    opacity: 0.5; 
 
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.1), 0 0 10px 10px #fff, 0 0 0 10px rgba(255, 255, 255, 0.5); 
 
    } 
 
    100% { 
 
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.1), 0 0 10px 10px #fff, 0 0 0 10px rgba(255, 255, 255, 0.5); 
 
    -o-transform: scale(1.5); 
 
    opacity: 0; 
 
    } 
 
} 
 
@keyframes whiteSonarEffect { 
 
    0% { 
 
    opacity: 0.3; 
 
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0), 0 0 10px 10px rgba(255, 255, 255, 0), 0 0 0 10px rgba(255, 255, 255, 0); 
 
    } 
 
    40% { 
 
    opacity: 0.5; 
 
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.1), 0 0 10px 10px #fff, 0 0 0 10px rgba(255, 255, 255, 0.5); 
 
    } 
 
    100% { 
 
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.1), 0 0 10px 10px #fff, 0 0 0 10px rgba(255, 255, 255, 0.5); 
 
    transform: scale(1.5); 
 
    opacity: 0; 
 
    } 
 
}
<div class="whiteSonarEffect"> 
 
    <div class="text"> 
 
    <h3>Hover Me</h3> 
 
    </div> 
 
    <div class="content"> 
 
    <div class="icon"></div> 
 
    </div> 
 
</div>

関連する問題