我有以下 CSS 代码,它是一个很好的声纳效果,应用于悬停时的元素。它在 Firefox、Opera 和 Chrome 中运行良好 但我也无法让它在 IE(10+) 和 Edge 中工作。
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 如果有任何建议,我们将不胜感激。
最佳答案
我过去遇到过类似的问题(不记得在哪里/何时),但 IE 要求在 0%
关键帧中设置 box-shadow
还。在下面的代码片段中,我添加了与 40%
关键帧中相同的 box-shadow
,但为所有阴影指定了 alpha=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>
关于CSS 动画在 IE 和 Edge 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38035791/