如何围绕圆圈旋转顶部边框?

时间:2016-08-21 11:15:02

标签: html css animation

我试图实现这个CSS动画,但不知道该怎么做。我想围绕圆圈旋转顶部边框,但整个过程包括文本旋转。我只想在360度旋转顶部边框。以下是我的代码段:



div#skill {
    /*background: url(../img/white.jpg) center no-repeat;
    background-size: cover;*/
    background-color: rgba(144, 0, 64,0.8);
    color: #fff;
    padding: 10px 0;
}

div#skill h3 {
    color: #fff;
    text-transform: none;
}

div#skill .row {
    margin-right: -15px;
    margin-left: -15px;
    padding: 15px 150px;
}

div#skill .circle {
    height: 120px;
    width: 120px;
    border: 5px solid #ccc;
    border-top-color: orange;
    border-radius: 60px;
    background-color: #74002f;
    /*Making the top border to spin*/
    animation: spin 2s linear infinite;
}

div#skill .circle:after {
    content: url(../img/icons/arrow-point-to-right.png);
    position: absolute;
    top: 25px;
    right: 0;
}

div#skill .circle.last:after{
    display: none;
}

.circle .caption {
    font-weight: bold;
    padding: 20px 24px;
}

.caption h6 {
    font-size: 15px;
}


/*Animation on circle*/
@keyframes spin {
    from {transform: rotate(0deg);}
    to {transform: rotate(360deg);}
}

<div id="skill">
        <div class="container">
            <div class="row">
                <div class="col-lg-12 text-center">
                    <h3>My development process</h3>
                </div>
            </div>
            <div class="row">
                <div class="col-md-3">
                    <div class="circle">
                        <div class="caption text-center">
                            <h6>1</h6>
                            <h6>Concept</h6>
                        </div>
                    </div>  
                </div>
                <div class="col-md-3">
                    <div class="circle">
                        <div class="caption text-center">
                            <h6>2</h6>
                            <h6>Design</h6>
                        </div>
                    </div> 
                </div>
                <div class="col-md-3">
                    <div class="circle">
                        <div class="caption text-center">
                            <h6>3</h6>
                            <h6>Code</h6>
                        </div>
                    </div> 
                </div>
                <div class="col-md-3">
                    <div class="circle last">
                        <div class="caption text-center">
                            <h6 class="text-center">4</h6>
                            <h6 class="text-center">Launch</h6>
                        </div>
                    </div> 
                </div>
            </div>
            <div class="row">
                <div class="col-md-6">
                    <h3>about my skills</h3>
                </div>
                <div class="col-md-6">
                    
                </div>
            </div>
        </div>
    </div>
&#13;
&#13;
&#13;

请帮帮我!非常感谢你的帮助。谢谢你提前!

2 个答案:

答案 0 :(得分:3)

解决方案是制作另一个div,它将位于.circle position:absolute;之后,它将如何“占用”.circle大小但不包含.circle内容。

div#skill {
  /*background: url(../img/white.jpg) center no-repeat;
  background-size: cover;*/
  background-color: rgba(144, 0, 64,0.8);
  color: #fff;
  padding: 10px 0;
}

div#skill h3 {
  color: #fff;
  text-transform: none;
}

div#skill .row {
  margin-right: -15px;
  margin-left: -15px;
  padding: 15px 150px;
}

div#skill .circle {
  position:relative;
  height: 120px;
  width: 120px;
  border: 5px solid #ccc;
  /*border-top-color: orange;*/
  border-radius: 50%;
  background-color: #74002f;
}

div#skill .circle:after {
  content: url(../img/icons/arrow-point-to-right.png);
  position: absolute;
  top: 25px;
  right: 0;
}

div#skill .circle.last:after{
  display: none;
}

.circle .caption {
  font-weight: bold;
  padding: 20px 24px;
  position:relative;
  z-index:1; 
}

.caption h6 {
  font-size: 15px;
}

.circle-rotate {
  height: 100%;
  width: 100%;
  border-top: 5px solid orange;
  border-radius: 60px;
  background-color: #74002f;
  /*Making the top border to spin*/
  animation: spin 2s linear infinite;
  position:absolute;
  top:0;
  left:0;
}


/*Animation on circle*/
@keyframes spin {
  from {transform: rotate(0deg);}
  to {transform: rotate(360deg);}
}
<div id="skill">
  <div class="container">
    <div class="row">
      <div class="col-lg-12 text-center">
        <h3>My development process</h3>
      </div>
    </div>
    <div class="row">
      <div class="col-md-3">
        <div class="circle">
          <div class="circle-rotate"></div>
          <div class="caption text-center">
            <h6>1</h6>
            <h6>Concept</h6>
          </div>
        </div>  
      </div>
      <div class="col-md-3">
        <div class="circle">
          <div class="caption text-center">
            <h6>2</h6>
            <h6>Design</h6>
          </div>
        </div> 
      </div>
      <div class="col-md-3">
        <div class="circle">
          <div class="caption text-center">
            <h6>3</h6>
            <h6>Code</h6>
          </div>
        </div> 
      </div>
      <div class="col-md-3">
        <div class="circle last">
          <div class="caption text-center">
            <h6 class="text-center">4</h6>
            <h6 class="text-center">Launch</h6>
          </div>
        </div> 
      </div>
    </div>
    <div class="row">
      <div class="col-md-6">
        <h3>about my skills</h3>
      </div>
      <div class="col-md-6">

      </div>
    </div>
  </div>
</div>

答案 1 :(得分:2)

&#13;
&#13;
div#skill {
  /*background: url(../img/white.jpg) center no-repeat;
    background-size: cover;*/
  background-color: rgba(144, 0, 64, 0.8);
  color: #fff;
  padding: 10px 0;
}
div#skill h3 {
  color: #fff;
  text-transform: none;
}
div#skill .row {
  margin-right: -15px;
  margin-left: -15px;
  padding: 15px 150px;
}
div#skill .circle {
  height: 120px;
  width: 120px;
  border: 5px solid #ccc;
  border-top-color: orange;
  border-radius: 50%;
  background-color: #74002f;
  /*Making the top border to spin*/
  animation: spin 2s linear infinite;
}
div#skill .circle:after {
  content: url(../img/icons/arrow-point-to-right.png);
  position: absolute;
  top: 25px;
  right: 0;
}
div#skill .circle.last:after {
  display: none;
}
.circle .caption {
  font-weight: bold;
  padding: 20px 24px;
}
.caption h6 {
  font-size: 15px;
}
/*Animation on circle*/

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.col-md-3 {
  position: relative;
}
.caption {
  position: absolute;
  z-index: 10;
  text-align: center;
  left: 65px; /* (120px width + 5+5px border )/2  */
  transform: translate(-50%, 0);
}
&#13;
<div id="skill">
  <div class="container">
    <div class="row">
      <div class="col-lg-12 text-center">
        <h3>My development process</h3>
      </div>
    </div>
    <div class="row">
      <div class="col-md-3">
        <div class="caption text-center">
          <h6>1</h6>
          <h6>Concept</h6>
        </div>
        <div class="circle">
        </div>
      </div>
      <div class="col-md-3">
        <div class="caption text-center">
          <h6>2</h6>
          <h6>Design</h6>
        </div>
        <div class="circle">
        </div>
      </div>
      <div class="col-md-3">
        <div class="caption text-center">
          <h6>3</h6>
          <h6>Code</h6>
        </div>
        <div class="circle">
        </div>
      </div>
      <div class="col-md-3">
        <div class="caption text-center">
          <h6 class="text-center">4</h6>
          <h6 class="text-center">Launch</h6>
        </div>
        <div class="circle last">
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col-md-6">
        <h3>about my skills</h3>
      </div>
      <div class="col-md-6">

      </div>
    </div>
  </div>
</div>
&#13;
&#13;
&#13;