Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 隐藏/显示后,动画微调器在IE中以相同的速度旋转_Javascript_Jquery_Css - Fatal编程技术网

Javascript 隐藏/显示后,动画微调器在IE中以相同的速度旋转

Javascript 隐藏/显示后,动画微调器在IE中以相同的速度旋转,javascript,jquery,css,Javascript,Jquery,Css,我有一个css动画微调器。它使用动画来旋转。元素上有一个边框,它的:before和:after。每个边框以不同的速度旋转。它在第一页加载时工作得很好,但在IE中,如果它被隐藏然后再次显示,它会以相同的速度旋转 这里有一把小提琴来说明问题: 以下是我的css: .loader-wrapper { position: relative; top: 0; left: 0; width: 100%; height: 100%; z-index: 1000; } .loader-w

我有一个css动画微调器。它使用动画来旋转。元素上有一个边框,它的:before和:after。每个边框以不同的速度旋转。它在第一页加载时工作得很好,但在IE中,如果它被隐藏然后再次显示,它会以相同的速度旋转

这里有一把小提琴来说明问题:

以下是我的css:

.loader-wrapper {
  position: relative;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1000;
}
.loader-wrapper .loader {
  display: block;
  position: absolute;
  left: 50%;
  top: 50%;
  width: 150px;
  height: 150px;
  margin: -75px 0 0 -75px;
  border-radius: 50%;
  border: 3px solid transparent;
  border-top-color: #2372b9;
  -webkit-animation: spin 2s linear infinite;
  /* Chrome, Opera 15+, Safari 5+ */
  -moz-animation: spin 2s linear infinite;
  -o-animation: spin 2s linear infinite;
  animation: spin 2s linear infinite;
  /* Chrome, Firefox 16+, IE 10+, Opera */
}
.loader-wrapper .loader:before {
  content: "";
  position: absolute;
  top: 5px;
  left: 5px;
  right: 5px;
  bottom: 5px;
  border-radius: 50%;
  border: 3px solid transparent;
  border-top-color: #f47b27;
  -webkit-animation: spin 3s linear infinite;
  /* Chrome, Opera 15+, Safari 5+ */
  -moz-animation: spin 3s linear infinite;
  -o-animation: spin 3s linear infinite;
  animation: spin 3s linear infinite;
  /* Chrome, Firefox 16+, IE 10+, Opera */
}
.loader-wrapper .loader:after {
  content: "";
  position: absolute;
  top: 15px;
  left: 15px;
  right: 15px;
  bottom: 15px;
  border-radius: 50%;
  border: 3px solid transparent;
  border-top-color: #6ba543;
  -moz-animation: spin 1.5s linear infinite;
  -o-animation: spin 1.5s linear infinite;
  -webkit-animation: spin 1.5s linear infinite;
  animation: spin 1.5s linear infinite;
  /* Chrome, Firefox 16+, IE 10+, Opera */
}
@-webkit-keyframes spin {
  0% {
    -webkit-transform: rotate(0);
    /* Chrome, Opera 15+, Safari 3.1+ */
    -ms-transform: rotate(0);
    /* IE 9 */
    -moz-transform: rotate(0);
    -o-transform: rotate(0);
    transform: rotate(0);
    /* Firefox 16+, IE 10+, Opera */
  }
  100% {
    -webkit-transform: rotate(360deg);
    /* Chrome, Opera 15+, Safari 3.1+ */
    -ms-transform: rotate(360deg);
    /* IE 9 */
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
    /* Firefox 16+, IE 10+, Opera */
  }
}
@-moz-keyframes spin {
  0% {
    -webkit-transform: rotate(0);
    /* Chrome, Opera 15+, Safari 3.1+ */
    -ms-transform: rotate(0);
    /* IE 9 */
    -moz-transform: rotate(0);
    -o-transform: rotate(0);
    transform: rotate(0);
    /* Firefox 16+, IE 10+, Opera */
  }
  100% {
    -webkit-transform: rotate(360deg);
    /* Chrome, Opera 15+, Safari 3.1+ */
    -ms-transform: rotate(360deg);
    /* IE 9 */
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
    /* Firefox 16+, IE 10+, Opera */
  }
}
@keyframes spin {
  0% {
    -webkit-transform: rotate(0);
    /* Chrome, Opera 15+, Safari 3.1+ */
    -ms-transform: rotate(0);
    /* IE 9 */
    -moz-transform: rotate(0);
    -o-transform: rotate(0);
    transform: rotate(0);
    /* Firefox 16+, IE 10+, Opera */
  }
  100% {
    -webkit-transform: rotate(360deg);
    /* Chrome, Opera 15+, Safari 3.1+ */
    -ms-transform: rotate(360deg);
    /* IE 9 */
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
    /* Firefox 16+, IE 10+, Opera */
  }
}
我的html:

<div class="loader-wrapper">
    <div class="loader"></div>
</div>

<a href="javascript:void(0);">Hide/show</a>

我不知道为什么会发生这种情况——您可能刚刚在IE对display属性的解释中发现了一个bug,或者它是如何处理伪元素的。您最好尝试另一种方法,例如用overflow:hidden切换隐藏类

.隐藏{ 身高:0; 溢出:隐藏; }

$("a").on("click", function() {
    if($(".loader").is(":visible")) {
        $(".loader").hide();
    }
    else {
        $(".loader").show();
    }
});