2016-06-26 4 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

이전에 비슷한 문제가 발생했지만 (어디에서/언제 기억할 수없는가) IE 프레임에서는 키 프레임에도 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>

관련 문제