同事们,请帮我把这个例子翻译成css完整SVG的,因为我不仅想在整个页面上使用它,而且还想在较小的滑块类型对象上使用它......
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html,
body {
overflow: hidden;
width: 100%;
height: 100%;
background-color: #2b2b2b;
}
.wrapper {
width: 100%;
height: 100%;
position: relative;
}
.wrap {
position: absolute;
left: calc(50% - 150px);
top: calc(50% - 150px);
width: 300px;
height: 300px;
}
.border-wrap {
overflow: hidden;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 50%;
border: 3px solid #6fba82;
border-top: 3px solid #f79533;
border-bottom: 3px solid #ef4e7b;
border-right: none;
box-shadow:
inset 1px 8px 2px 5px #f79533,
2px 7px 2px 5px #f37055,
inset 3px 6px 2px 5px #ef4e7b,
4px 5px 2px 5px #a166ab,
inset 5px 4px 2px 5px #5073b8,
6px 3px 2px 5px #1098ad,
inset 7px 2px 2px 5px #07b39b,
8px 1px 2px 5px #6fba82;
animation: main-rotate 3s infinite linear;
}
@keyframes main-rotate {
from {
transform: rotateZ(0);
box-shadow:
inset 1px 8px 2px 5px #f79533,
2px 7px 2px 5px #f37055,
inset 3px 6px 4px 5px #ef4e7b,
4px 5px 2px 5px #a166ab,
inset 5px 4px 6px 5px #5073b8,
6px 3px 2px 5px #1098ad,
inset 7px 2px 8px 5px #07b39b,
8px 1px 2px 5px #6fba82;
}
50% {
box-shadow:
inset 1px 8px 6px 5px #ADFF2F,
2px 7px 2px 5px #7FFF00,
inset 3px 6px 6px 5px #7CFC00,
4px 5px 2px 5px #00FF00,
inset 5px 4px 4px 5px #32CD32,
6px 3px 2px 5px #98FB98,
inset 7px 2px 2px 5px #90EE90,
8px 1px 2px 5px #00FA9A;
}
from {
transform: rotateZ(360deg);
box-shadow:
inset 1px 8px 2px 5px #f79533,
2px 7px 2px 5px #f37055,
inset 3px 6px 4px 5px #ef4e7b,
4px 5px 2px 5px #a166ab,
inset 5px 4px 6px 5px #5073b8,
6px 3px 2px 5px #1098ad,
inset 7px 2px 8px 5px #07b39b,
8px 1px 2px 5px #6fba82;
}
}
<div class="wrapper">
<div class="wrap">
<div class="border-wrap">
</div>
</div>
</div>
形状将具有复杂的轮廓,因此,为了避免在旋转 SVG 元素时出现不可预测的行为,立即明确定义旋转中心非常重要。
在矢量编辑器中工作
要设置/确定形状的中心,让我们采取几个简单的步骤:
旋转中心将
150 Х 150px要将矩形的轮廓转换为所需的形状,请在矢量编辑器的菜单中选择
Контур / Оконтурить объектshift+Contrl+CСделать выделенные узлы автоматически сглаженными结果就是这样的图
通过拖动锚点并使用它们的杠杆,我们实现了所需的形状
拖动时,必须注意不要移动整个图形。图为中心一直在原地
150 Х 150<path>d="M.... />创建预加载器代码
绕圈一圈
我们给出一个旋转命令
values="0 150 150;360 150 150"——从 0 到 360 度。中心 150 X 150添加从第一个环的副本获得的第二个环,然后先将其旋转 45 度。
两个圆环的动画同时开始,但旋转方向不同
为每个环添加渐变、透明度
附加效果
加载器环渐变动画
让我们为线性渐变属性设置动画
stop-color同样,我们制作第二个圆环渐变的动画
为渐变动画添加环形旋转
添加文本并对其应用渐变。
如果你在布局中实际应用这个例子,那么你可以制作一个加载器静态闪烁的画廊,点击后会出现文本、照片等,这些画廊将被旋转的圆环包围。
在 SVG 内单击时开始动画。
许多人被非常长的 SVG 代码行吓倒了。
从 CSS 属性格式(每一行都有一个属性)转变在心理上是很困难的。我会尽量写
SVG规则风格的属性、命令,CSS同时我会改变预加载器的配色方案: