gpt4 book ai didi

css - 使用 Web Essentials 2012 设置 LESS 关键帧名称

转载 作者:太空宇宙 更新时间:2023-11-04 13:07:05 25 4
gpt4 key购买 nike

我正在尝试使用 LESS 在 CSS 中创建一个动画加载微调器,我希望能够通过为显示微调器的元素设置一个类来动态设置微调器的颜色。我正在使用 Web Essentials 2012用于创建和编译 LESS 文件的 Visual Studio 2012。

我是 LESS 的新手,似乎找不到添加动态关键帧名称的方法。考虑以下代码:

减少:

@white: #FFF;

.Spin(@color)
{
0%, 100%
{
box-shadow: 0em -3em 0em 0.2em @color, 2em -2em 0 0em @color, 3em 0em 0 -0.5em @color, 2em 2em 0 -0.5em @color, 0em 3em 0 -0.5em @color, -2em 2em 0 -0.5em @color, -3em 0em 0 -0.5em @color, -2em -2em 0 0em @color;
}

12.5%
{
box-shadow: 0em -3em 0em 0em @color, 2em -2em 0 0.2em @color, 3em 0em 0 0em @color, 2em 2em 0 -0.5em @color, 0em 3em 0 -0.5em @color, -2em 2em 0 -0.5em @color, -3em 0em 0 -0.5em @color, -2em -2em 0 -0.5em @color;
}

25%
{
box-shadow: 0em -3em 0em -0.5em @color, 2em -2em 0 0em @color, 3em 0em 0 0.2em @color, 2em 2em 0 0em @color, 0em 3em 0 -0.5em @color, -2em 2em 0 -0.5em @color, -3em 0em 0 -0.5em @color, -2em -2em 0 -0.5em @color;
}

37.5%
{
box-shadow: 0em -3em 0em -0.5em @color, 2em -2em 0 -0.5em @color, 3em 0em 0 0em @color, 2em 2em 0 0.2em @color, 0em 3em 0 0em @color, -2em 2em 0 -0.5em @color, -3em 0em 0 -0.5em @color, -2em -2em 0 -0.5em @color;
}

50%
{
box-shadow: 0em -3em 0em -0.5em @color, 2em -2em 0 -0.5em @color, 3em 0em 0 -0.5em @color, 2em 2em 0 0em @color, 0em 3em 0 0.2em @color, -2em 2em 0 0em @color, -3em 0em 0 -0.5em @color, -2em -2em 0 -0.5em @color;
}

62.5%
{
box-shadow: 0em -3em 0em -0.5em @color, 2em -2em 0 -0.5em @color, 3em 0em 0 -0.5em @color, 2em 2em 0 -0.5em @color, 0em 3em 0 0em @color, -2em 2em 0 0.2em @color, -3em 0em 0 0em @color, -2em -2em 0 -0.5em @color;
}

75%
{
box-shadow: 0em -3em 0em -0.5em @color, 2em -2em 0 -0.5em @color, 3em 0em 0 -0.5em @color, 2em 2em 0 -0.5em @color, 0em 3em 0 -0.5em @color, -2em 2em 0 0em @color, -3em 0em 0 0.2em @color, -2em -2em 0 0em @color;
}

87.5%
{
box-shadow: 0em -3em 0em 0em @color, 2em -2em 0 -0.5em @color, 3em 0em 0 -0.5em @color, 2em 2em 0 -0.5em @color, 0em 3em 0 -0.5em @color, -2em 2em 0 0em @color, -3em 0em 0 0em @color, -2em -2em 0 0.2em @color;
}
}

.Keyframes(@name, @color)
{
@-webkit-keyframes @name { .Spin(@color); }
@-moz-keyframes @name { .Spin(@color); }
@-ms-keyframes @name { .Spin(@color); }
@-o-keyframes @name { .Spin(@color); }
@keyframes @name { .Spin(@color); }
}

.Animate(@name, @color)
{
.Keyframes(@name, @color);
animation: 1.3s linear 0s normal none infinite @name;
-moz-animation: 1.3s linear 0s normal none infinite @name;
-o-animation: 1.3s linear 0s normal none infinite @name;
-webkit-animation: 1.3s linear 0s normal none infinite @name;
}

.loading
{
display: inline-block;
padding-left: 2.5em;
position: relative;
-webkit-backface-visibility: hidden;
cursor: default !important;

&:before
{
border-radius: 50%;
content: "";
font-size: 0.2em;
height: 1em;
left: 0;
margin: 5em auto 5em 5em;
position: absolute;
top: 0;
width: 1em;
}

&.white:before
{
.Animate(spinwhite, @white);
}
}

编译后的代码如下:

CSS(为了便于阅读,我省略了所有供应商特定的关键帧符号):

.loading {
display: inline-block;
padding-left: 2.5em;
position: relative;
-webkit-backface-visibility: hidden;
cursor: default !important;
}
.loading:before {
border-radius: 50%;
content: "";
font-size: 0.2em;
height: 1em;
left: 0;
margin: 5em auto 5em 5em;
position: absolute;
top: 0;
width: 1em;
}
.loading.white:before {
animation: 1.3s linear 0s normal none infinite spinwhite;
-moz-animation: 1.3s linear 0s normal none infinite spinwhite;
-o-animation: 1.3s linear 0s normal none infinite spinwhite;
-webkit-animation: 1.3s linear 0s normal none infinite spinwhite;
}
@keyframes @name {
0%,
100% {
box-shadow: 0em -3em 0em 0.2em #ffffff, 2em -2em 0 0em #ffffff, 3em 0em 0 -0.5em #ffffff, 2em 2em 0 -0.5em #ffffff, 0em 3em 0 -0.5em #ffffff, -2em 2em 0 -0.5em #ffffff, -3em 0em 0 -0.5em #ffffff, -2em -2em 0 0em #ffffff;
}
12.5% {
box-shadow: 0em -3em 0em 0em #ffffff, 2em -2em 0 0.2em #ffffff, 3em 0em 0 0em #ffffff, 2em 2em 0 -0.5em #ffffff, 0em 3em 0 -0.5em #ffffff, -2em 2em 0 -0.5em #ffffff, -3em 0em 0 -0.5em #ffffff, -2em -2em 0 -0.5em #ffffff;
}
25% {
box-shadow: 0em -3em 0em -0.5em #ffffff, 2em -2em 0 0em #ffffff, 3em 0em 0 0.2em #ffffff, 2em 2em 0 0em #ffffff, 0em 3em 0 -0.5em #ffffff, -2em 2em 0 -0.5em #ffffff, -3em 0em 0 -0.5em #ffffff, -2em -2em 0 -0.5em #ffffff;
}
37.5% {
box-shadow: 0em -3em 0em -0.5em #ffffff, 2em -2em 0 -0.5em #ffffff, 3em 0em 0 0em #ffffff, 2em 2em 0 0.2em #ffffff, 0em 3em 0 0em #ffffff, -2em 2em 0 -0.5em #ffffff, -3em 0em 0 -0.5em #ffffff, -2em -2em 0 -0.5em #ffffff;
}
50% {
box-shadow: 0em -3em 0em -0.5em #ffffff, 2em -2em 0 -0.5em #ffffff, 3em 0em 0 -0.5em #ffffff, 2em 2em 0 0em #ffffff, 0em 3em 0 0.2em #ffffff, -2em 2em 0 0em #ffffff, -3em 0em 0 -0.5em #ffffff, -2em -2em 0 -0.5em #ffffff;
}
62.5% {
box-shadow: 0em -3em 0em -0.5em #ffffff, 2em -2em 0 -0.5em #ffffff, 3em 0em 0 -0.5em #ffffff, 2em 2em 0 -0.5em #ffffff, 0em 3em 0 0em #ffffff, -2em 2em 0 0.2em #ffffff, -3em 0em 0 0em #ffffff, -2em -2em 0 -0.5em #ffffff;
}
75% {
box-shadow: 0em -3em 0em -0.5em #ffffff, 2em -2em 0 -0.5em #ffffff, 3em 0em 0 -0.5em #ffffff, 2em 2em 0 -0.5em #ffffff, 0em 3em 0 -0.5em #ffffff, -2em 2em 0 0em #ffffff, -3em 0em 0 0.2em #ffffff, -2em -2em 0 0em #ffffff;
}
87.5% {
box-shadow: 0em -3em 0em 0em #ffffff, 2em -2em 0 -0.5em #ffffff, 3em 0em 0 -0.5em #ffffff, 2em 2em 0 -0.5em #ffffff, 0em 3em 0 -0.5em #ffffff, -2em 2em 0 0em #ffffff, -3em 0em 0 0em #ffffff, -2em -2em 0 0.2em #ffffff;
}
}

请注意 keyframes 的名称是 @name 而不是我希望的 spinwhite。根据这个SO帖子,这种方法应该适用于 LESS 1.7.x 及更高版本,但根据 changelog Web Essentials的最新版本使用的编译器是1.6.3版本。

有没有人知道如何让它工作?或者只是等待和耐心等待 Web Essentials 更新其编译器?

最佳答案

找到了一个可行的解决方案,但感觉有点像“hack”。我下载了最新的 LESS-compiler并覆盖 Web Essentials 使用的那个,它位于 C:\Users[USER]\AppData\Local\Microsoft\VisualStudio\11.0\Extensions\[SOME SEEMINGLY RANDOM CHARACTERS]\Resources\Scripts文件名 less-1.6.3.min.js

为了使新编译器工作,我必须使用与现有编译器相同的文件名。之后,只需重新启动 Visual Studio 并重新保存我的 LESS 文件即可。生成的 CSS 文件现在包含我预期和想要的代码。

在使用新的 LESS 编译器更新 Web Essentials 之前,此解决方案对我来说已经足够了。

关于css - 使用 Web Essentials 2012 设置 LESS 关键帧名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25039434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com