- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有类似于 THIS 的进度条我想改变的颜色。例如,当值小于 50% 时,我希望它从绿色变为黄色。
我是 Less 的新手。我有 read有更新 Less CSS 的方法。因此,如果我有一个 @circle-color
变量,我想稍后在我的 javascript 中更改它;我应该修改 var,然后更新 Less。
less.modifyVars({
'@circle-color': '#FF4747'
});
less.refresh();
到目前为止,我已经试过了,但没有用 here .有没有简单的方法可以做到这一点?我错过了一些基本的东西吗?这是我认为以前可能已经回答过的问题之一,但我们还是试试吧。
最佳答案
可以通过在样式中使用较少的插件功能而不是较少的变量来实现这一点(另请参阅短两步版本没有较少的插件)。您只需要编写一个简短的插件(就像编写 getter 和 setter 一样简单)来重新/存储变量。存储插件的示例也在 less 文档中 -> http://lesscss.org/features/#plugin-atrules-feature-plugin-scope只需寻找“商店”。我将介绍使用 less 插件功能更改颜色所需的所有步骤:
<强>1。创建更少的插件:在 less 文件旁边创建 mylessplugin.js。它将只包含安装函数中的获取和设置函数:
module.exports = function() {
let COLORPLUGIN = {
install: (less, pluginManager, functions) => {
let storedColor = '#FFFFFF';
functions.add('setcolorfn', (themeColor) => {
storedColor = themeColor ? themeColor : '#FFFFFF';
});
functions.add('getcolorfn', () => {
return storedColor;
});
}
};
return COLORPLUGIN;
};
<强>2。将您的插件导入 less 文件。 使用 @plugin less 会将您的 .js 文件识别为 less 插件。 less 文件做了什么?也许看起来很复杂,但很容易。我们可以将自己的属性设置为 body 元素,该元素将存储我们稍后要使用 javascript 设置的颜色。我将其命名为 --data-active-color 并为其赋值“#FFFFFF”。下一行将使用 var() @setActiveColorFn: setcolorfn(~"var(--data-active-color)") 从我们的 less 插件中调用 set 函数以将值存储在插件中。所以我们的插件现在知道颜色设置为“#FFFFFF”。这就是 body 元素的全部内容。然后我们将创建简单的 mixin,它将使用 less 插件中的 get 函数设置属性颜色。请参见 .active-color。或者你可以使用 mixin 来设置你在括号中传递的属性。在我们的 less 文件中要做的最后一件事是使用我们的 mixin 扩展类 .con-active-color。如果您将此类放置到要修改的元素 (.container { .con-active-color;}) 中,它将自动更改为您存储的颜色:
@plugin "plugin/path/mylessplugin";
.con-active-color {
&:extend(.active-color);
}
body {
--data-active-color: '#FFFFFF';
@setActiveColorFn: setcolorfn(~"var(--data-active-color)");
}
.active-color-background {
background-color: getcolorfn();
}
.active-color {
color: getcolorfn();
}
.active-param (@param) {
@{param}: getcolorfn();
}
<强>3。用js改变颜色。 最后一步也很简单。例如,使用元素输入类型='color' onchange='changeColor()' 创建颜色选择器,并在 changeColor 函数中根据需要修改 body 元素的 --data-active-color 属性。此属性的所有更改将我们的 less 文件存储在我们的 less 插件中,它将自动返回使用我们的 mixin 的类中的存储值。因此,您可以轻松存储您的颜色 f.e。在 localStorage 中并将其设置为 body 元素。就是这样:
document.body.style.setProperty("--data-active-color", myNewColor);
或者你也可以跳过使用less插件,直接使用body参数。所以你只需要:
<强>1。创建 less 文件,您可以在其中为我们在 body 中的存储参数设置默认值并创建 mixin:
@my-color: '#FFFFFF';
body {
--data-color: @my-color;
}
.color-mixin (@property) {
@{property}: ~"var(--data-color)";
}
<强>2。用js改变颜色。(同上一版第三步)。例如,使用元素输入类型='color' onchange='changeColor()' 创建颜色选择器,并在 changeColor 函数中根据需要修改 body 元素的 --data-color 属性。然后只需在要修改的元素中使用 mixin(例如 .color-mixin(background-color);)。就是这样:
document.body.style.setProperty("--data-color", myNewColor);
关于javascript - 如何使用 Javascript 更改 Less CSS 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31559104/
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: How to nest OR statements in JavaScript? 有没有办法做到这一点:
在 JavaScript 中有没有办法让一个变量总是等于一个变量?喜欢var1 = var2但是当var2更新,也是var1 . 例子 var var1 = document.getElementBy
我正在努力理解这代表什么 var1 = var2 == var3 我的猜测是这等同于: if (var2 == var3): var1 = var2 最佳答案 赋值 var1 = var2
这个问题已经有答案了: What does the PHP error message "Notice: Use of undefined constant" mean? (2 个回答) 已关闭 8
我在临时表中有几条记录,我想从每条记录中获取一个值并将其添加到一个变量中,例如 color | caption -------------------------------- re
如何将字符串转为变量(字符串变量--> $variable)? 或者用逗号分隔的变量列表然后转换为实际变量。 我有 2 个文件: 列名文件 行文件 我需要根据字符串匹配行文件中的整行,并根据列名文件命
我有一个我无法解决的基本 php 问题,我也想了解为什么! $upperValueCB = 10; $passNodeMatrixSource = 'CB'; $topValue= '$uppe
这可能吗? php $variable = $variable1 || $variable2? 如果 $variable1 为空则使用 $variable2 是否存在类似的东西? 最佳答案 PHP 5
在 Perl 5.20 中,for 循环似乎能够修改模块作用域的变量,但不能修改父作用域中的词法变量。 #!/usr/bin/env perl use strict; use warnings; ou
为什么这不起作用: var variable; variable = variable.concat(variable2); $('#lunk').append(variable) 我无法弄清楚这一点
根据我的理解,在32位机器上,指针的sizeof是32位(4字节),而在64位机器上,它是8字节。无论它们指向什么数据类型,它们都有固定的大小。我的计算机在 64 位上运行,但是当我打印包含 * 的大
例如: int a = 10; a += 1.5; 这运行得很完美,但是 a = a+1.5; 此作业表示类型不匹配:无法从 double 转换为 int。所以我的问题是:+= 运算符 和= 运算符
您好,我写了这个 MySQL 存储过程,但我一直收到这个语法错误 #1064 - You have an error in your SQL syntax; check the manual that
我试图在我的场景中显示特定的奖牌,这取决于你的高分是基于关卡的目标。 // Get Medal Colour if levelHighscore goalScore { sc
我必须维护相当古老的 Visual C++ 源代码的大型代码库。我发现代码如下: bIsOk = !!m_ptr->isOpen(some Parameters) bIsOk的数据类型是bool,is
我有一个从 MySQL 数据库中提取的动态产品列表。在 list 上有一个立即联系 按钮,我正在使用一个 jquery Modal 脚本,它会弹出一个表单。 我的问题是尝试将产品信息变量传递给该弹出窗
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: What is the difference between (type)value and type(va
jQuery Core Style Guidelines建议两种不同的方法来检查变量是否已定义。 全局变量:typeof variable === "undefined" 局部变量:variable
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: “Variable” Variables in Javascript? 我想肯定有一种方法可以在 JavaScrip
在语句中使用多重赋值有什么优点或缺点吗?在简单的例子中 var1 = var2 = true; 赋值是从右到左的(我相信 C# 中的所有赋值都是如此,而且可能是 Java,尽管我没有检查后者)。但是,
我是一名优秀的程序员,十分优秀!