【问题标题】:CSS animation does not work in IE and EdgeCSS 动画在 IE 和 Edge 中不起作用
【发布时间】:2016-06-26 15:57:48
【问题描述】:

我有以下 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 如有任何建议,将不胜感激。

【问题讨论】:

    标签: css internet-explorer css-animations microsoft-edge


    【解决方案1】:

    我过去遇到过类似的问题(不记得在哪里/何时),但 IE 也需要在 0% 关键帧中设置 box-shadow。在下面的 sn-p 中,我添加了与 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>

    【讨论】:

      猜你喜欢
      • 2018-04-06
      • 1970-01-01
      • 2015-06-04
      • 2017-05-24
      • 2018-06-04
      • 2014-12-23
      • 2014-02-28
      • 2017-10-16
      • 2020-04-26
      相关资源
      最近更新 更多