html - 使用 CSS 仅旋转边框

标签 html css css-animations

<分区>

我正在尝试使用 css 仅旋转边框,但字体图标也在旋转。如何停止图标的旋转并只制作边框?

CSS:

.circle {
    width: 100px;
    height: 100px;
    background: transparent;
    border-radius: 50%;
    border: 2px dashed #000;
 -webkit-animation-name: Rotate;
 -webkit-animation-duration: 2s;
 -webkit-animation-iteration-count: infinite;
 -webkit-animation-timing-function: linear;
 -moz-animation-name: Rotate;
 -moz-animation-duration: 2s;
 -moz-animation-iteration-count: infinite;
 -moz-animation-timing-function: linear;
 -ms-animation-name: Rotate;
 -ms-animation-duration: 2s;
 -ms-animation-iteration-count: infinite;
 -ms-animation-timing-function: linear;
}
.play {
padding: 20px 30px;
font-size: 56px;
}

@-webkit-keyframes Rotate
{
 from{-webkit-transform:rotate(0deg);}
 to{-webkit-transform:rotate(360deg);}
}
@-moz-keyframes Rotate
{
 from{-moz-transform:rotate(0deg);}
 to{-moz-transform:rotate(360deg);}
}
@-ms-keyframes Rotate
{
 from{-ms-transform:rotate(0deg);}
 to{-ms-transform:rotate(360deg);}
}

HTML:

<div class="circle">
   <div class="play"><i class="fa fa-play"></i></div>
</div>

这段代码哪里出错了?

DEMO JSFIDDEL

最佳答案

旋转父级也会旋转子级,所以最好像这里一样单独设置边框样式

.circle {
  width: 100px;
  height: 100px;
  position: relative;
}
.circle .border {
  /* content: ''; */
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: transparent;
  border-radius: 50%;
  border: 2px dashed #000;
  -webkit-animation-name: Rotate;
  -webkit-animation-duration: 2s;
  -webkit-animation-iteration-count: infinite;
  -webkit-animation-timing-function: linear;
  -moz-animation-name: Rotate;
  -moz-animation-duration: 2s;
  -moz-animation-iteration-count: infinite;
  -moz-animation-timing-function: linear;
  -ms-animation-name: Rotate;
  -ms-animation-duration: 2s;
  -ms-animation-iteration-count: infinite;
  -ms-animation-timing-function: linear;
}
.play {
  padding: 20px 30px;
  font-size: 56px;
}
.stop {
  font-size: 12px;
  padding: 30px;
  text-align: center;
}
@-webkit-keyframes Rotate {
  from {
    -webkit-transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
  }
}
@-moz-keyframes Rotate {
  from {
    -moz-transform: rotate(0deg);
  }
  to {
    -moz-transform: rotate(360deg);
  }
}
@-ms-keyframes Rotate {
  from {
    -ms-transform: rotate(0deg);
  }
  to {
    -ms-transform: rotate(360deg);
  }
}
<div class="circle">
  <div class="border"></div>
  <div class="play"><i class="fa fa-play"></i>
  </div>
</div>

<p>
  PS: The icon loading is a bit slow. Wait until it shows up.
</p>

<div class="circle">
  <div class="border"></div>
  <div class="stop">Stop me please</div>
</div>

关于html - 使用 CSS 仅旋转边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37810361/

相关文章:

javascript - react 过渡组出现过渡无法正常工作

css - 在循环结束时停止动画

Javascript 音频分层 eventListener HTML5 在多次迭代中失败

javascript - 使用 onclick 命令隐藏 DIV 元素

javascript - 如何使用 CSS/Javascript 在 HTML 上防止 iOS 上的自动旋转图像

javascript - 在高流量的大网站中使用 JQuery UI 主题好吗?

javascript - 突出显示 html 元素

javascript - jQuery/HTML5 文件API : Why does no drag event appear to be triggering?

css - 如何根据内容设置 mat-drawer-container、mat-drawer 和 mat-drawer-content 高度响应?

css - 带有 CSS 过渡的 VueJS 中的简单淡入淡出入口