我想用SVG制作一个按钮,然后复制YouTube的自动播放圈子。我一直在尝试使笔划在顶部中心开始和结束,但是它最好在左上角开始,因为当我开始更改笔划-dasharry和笔划-dashoffset数字时,它开始于开始或结束。我知道用圆圈会容易得多,但是我想看看是否有可能。似乎开始并非如此。



svg:hover {
  stroke-dasharray: 1000;
  stroke-dashoffset: 1000;
  animation: dash 5s linear forwards;
}
@keyframes dash {
  to {
    stroke-dashoffset: 0;
  }
}

<svg width="160" height="80">

  <a xlink:href="/next_video" target="_self">
    <rect class="path" height="70" width="130" y="5" x="5" rx="35" stroke="#eee" stroke-width="8px" />
    <rect height="60" width="120" y="10" x="10" rx="30" fill="#00a6bc" />
    <text fill="#eee" text-anchor="middle" y="45" x="70">Next video</text>
  </a>
</svg>

最佳答案

无法更改SVG <rect>的破折号的开始位置。

要实现所需的功能,您需要切换到<path>元素并自己绘制形状。然后,您可以随时随地开始路径。



svg:hover {
  stroke-dasharray: 1000;
  stroke-dashoffset: 1000;
  animation: dash 5s linear forwards;
}
@keyframes dash {
  to {
    stroke-dashoffset: 0;
  }
}

<svg width="160" height="80">

  <a xlink:href="/next_video" target="_self">
    <path d="M70,5 L100,5 A35,35 0 0 1 100,75 L40,75 A35,35 0 0 1 40,5 Z"
          stroke="#eee" stroke-width="8px" />
    <rect height="60" width="120" y="10" x="10" rx="30" fill="#00a6bc" />
    <text fill="#eee" text-anchor="middle" y="45" x="70">Next video</text>
  </a>
</svg>

关于html - 如何从圆 Angular 矩形的顶部中心进行描边,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38018756/

10-10 23:38