线条移动效果如何实现?

类似这种效果,如何实现?

阅读 2k
3 个回答

使用 SVG 标签 <circle>,配合其 CSS 款式 stroke-dasharray 和 stroke-dashoffset 即可轻松实现上述成果:

<svg class="circular" viewbox="25 25 50 50">
  <circle class="path" cx="50" cy="50" r="20" fill="none" />
</svg>
.circular {
  width: 100px;
  height: 100px;
  animation: rotate 2s linear infinite;
}
.path {
  stroke-dasharray: 1, 200;
  stroke-dashoffset: 0;
  stroke: #000;
  animation: dash 1.5s ease-in-out infinite
}
@keyframes rotate {
  100% {
    transform: rotate(360deg);
  }
}
@keyframes dash {
  0% {
    stroke-dasharray: 1, 200;
    stroke-dashoffset: 0;
  }
  50% {
    stroke-dasharray: 89, 200;
    stroke-dashoffset: -35px;
  }
  100% {
    stroke-dasharray: 89, 200;
    stroke-dashoffset: -124px;
  }
}

已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。

1、让gif动图替代
2、svg动画
@-webkit-keyframes dash {

0% {
    stroke-dasharray: 1,150;
    stroke-dashoffset: 0
}

50% {
    stroke-dasharray: 90,150;
    stroke-dashoffset: -35
}

100% {
    stroke-dasharray: 90,150;
    stroke-dashoffset: -124
}

}

@keyframes dash {

0% {
    stroke-dasharray: 1,150;
    stroke-dashoffset: 0
}

50% {
    stroke-dasharray: 90,150;
    stroke-dashoffset: -35
}

100% {
    stroke-dasharray: 90,150;
    stroke-dashoffset: -124
}

}
已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题