【问题标题】:Element border rotation元素边框旋转
【发布时间】:2015-09-11 10:32:58
【问题描述】:

我有两个这样的元素:

<div class="element"><span></span></div>

元素必须有一个圆形边框(CSS),并且在悬停时边框必须是虚线(CSS)并旋转,但跨度应该是静态的。有什么帮助吗?

@keyframes rotate {
  from {
    transform: rotate(0);
  }
  to {
    transform: rotate(360deg);
  }
}
@-moz-keyframes rotate {
  from {
    -moz-transform: rotate(0);
  }
  to {
    -moz-transform: rotate(360deg);
  }
}
@-webkit-keyframes rotate {
  from {
    -webkit-transform: rotate(0);
  }
  to {
    -webkit-transform: rotate(360deg);
  }
}
.element {
  width: 40px;
  height: 40px;
  background: #ededed;
  color: @fff;

}
.element:hover {
  animation: rotate 2s infinite linear;
  -moz-animation: rotate 2s infinite linear;
  -webkit-animation: rotate 2s infinite linear;
}
<div class="element"><span>1</span>
</div>

【问题讨论】:

  • 旋转是什么意思?您的意思是边框中的破折号应该在元素周围移动吗?
  • 边框中的破折号应该在元素周围移动,是的。
  • 这是测试代码。我怎样才能得到,那个跨度不随 div 移动?
  • 或者我如何旋转边框,例如,如果我有 1 个跨度,也许 javascript 有帮助?

标签: javascript css


【解决方案1】:

.element {
  width: 250px;
  height: 250px;
  border:3px solid grey;
  border-radius:50%;
  margin: 25px auto;
  line-height: 250px;
  text-align: center;
 }

.element:hover {
  border-style:dashed;
  animation: spin 10s infinite linear;
}

.element:hover span {
  animation: spin 10s infinite reverse linear;
}

span {
  display: inline-block;
}

@keyframes spin {
  100% { transform: rotate(1turn); }
}
&lt;div class="element"&gt;&lt;span&gt;Not Spinning On Hover&lt;/span&gt;&lt;/div&gt;

【讨论】:

  • @Александр 我认为如果内容(不旋转..)不在中间,这个将不起作用,我从元素中删除了line-height,在这里你可以看到结果 - @987654321 @
  • 你必须提供你的实际代码,但原理是一样的。
【解决方案2】:

我相信 this codepen 有你需要的结果。但是,这种方法需要在 &lt;div&gt; 中添加额外的 &lt;span&gt; 元素。

【讨论】:

  • 这很有趣,但我需要另一个。抬头、旋转和反转,这正是我所需要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-12
相关资源
最近更新 更多