在许多网站上,开始出现对称切出小区域的旋转圆圈的效果。看起来不错。如何复制这种效果?
我设法使用属性剪切了一段stroke-dasharray
下面的代码:
.txt1 {fill:white; pointer-events:none;}
.rect {fill:gray;}
.txt1:hover {fill:white;}
.rect:hover {fill:black; transition:fill 0.5s all;}
<svg id="svg1" version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" width="320" height="60" viewBox="0 0 350 60" >
<g id="gr1" >
<rect class="rect" x="62" y="11" rx="10" width="250" height="40" />
<text class="txt1" x="75" y="40" font-size="22" > SPECIAL OPERATIONS </text>
<circle id="crc1" cx="30" cy="30" r="20" stroke='grey' stroke-width="3" fill='transparent'
stroke-dasharray="115.66 10" stroke-dashoffset="-35.41" >
</circle>
</g>
</svg>
将鼠标悬停在标签上时如何剪切第二个对称段并使其旋转?
更新
添加了新答案:
选项 - 仅 HTML 和 CSS @UModeL
比赛附加条件:
使用实现动画的解决方案来获得答案会非常有趣,就像 SVG 的CSS动画答案一样JS
- 单段旋转
- 创建具有两个以上段的形状动画的技术
- 从一点对称填充形状的动画
在决策平等的情况下,将优先选择带有良好注释代码的答案。
不接受使用插件、第三方库作为竞争性答案的答案。
2019 年 2 月 24 日更新
恭喜 UModel 竞赛获胜者
比赛的所有困难条件都满足了!
我相信很多人最终会一次又一次地回到这个话题来使用答案作者的原始解决方案。整个代码以非常详细和易于访问的方式进行注释,这使得更容易感知和掌握各种解决方案技术的有趣组合。