- 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/
我在尝试使用 WebStorm LESS File Watcher 时遇到此错误 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/
我有一个带有以下结构的 .less 样式表: @width:600; .some-style { width:@{width}px; } 这给出了以下错误: Expected '}' on l
说我有以下结构 /node_modules /src /components /component1 /style /style.less
我想使用灰度函数,但 LESS 一直抛出此错误,我没有看到灰度的 mixin 或如何使用它。有什么帮助吗? Error 148 Expected color in function 'graysc
我的文件较少,如下面的目录结构 vendor/includes/file1.less vendor/includes/file1.less vendor/includes/file1
如果我在 LESS 中定义以下嵌套样式: .nav-bar { .navbar-brand { background: #000; } } .nav-bar {
我正在尝试设置一个使用 lein-less 插件编译 .less 文件的 clojurescript 项目。我应该说我是 clojurescript 的新手。问题是它似乎没有运行。它在我运行“lein
有人会这样使用“less”: var less = require('less'); less.render('.class { width: (1 + 1) }', function (e, css
我正在尝试在一个新元素中测试 less.js。我 100% 确定 javascript 文件加载正常,但我的 css 文件夹中的 less 文件一直出现此错误。我打算在启动之前使用 less.app
我有以下更少: .container { .column, .columns { .one& { width: 40px; }
这是一个代码(test.less): body { padding: 50px; } body { padding: 20px; } 为什么在编译成 CSS 后我有这个: body {
我有一个变量 @index我想输出一个选择器,以便当 @index是 3 , 选择器是 [data-sth="3"] . 更长的例子: @index: 3; /* selector here */ {
假设我有一个使用 Less 定义的样式: ul.unstyled, ol.unstyled { margin-left: 0; list-style: none; } 稍后,我想重新使用 un
假设我有以下 Less 设置: .box { border: 1px solid #333; &.error { background-color: Red; } } 如果我想
我有一个 common.less文件,它为不同的皮肤实现了基本的 CSS: @textColor: black; @iconSize: 16px; .container: { color: @
我创建了使用 LESS 功能切换主题的代码。不幸的是,LESS 文件不会在浏览器中编译。如何在浏览器中编译 LESS 文件? 最佳答案 这是一张documentation : Client-side
我想使用 less 来定位类中的特定元素。 在这种情况下,我想定位类 button 的元素,但在此范围内我想定位一个 anchor 标签 a . 目前我有: .button { /* lots
我正在努力做某事。我的项目是这样的: /app /assets /components /stylesheets /less
我目前正在一个项目中使用 Twitter Bootstrap,包括 LESS 文件并使用我们编写的一些附加 LESS 代码进行编译。 最新版本意味着我们需要覆盖一些 Bootstrap LESS 变量
我有这个更少的代码,这工作得很好。我只是想在 less cli 编译它时节省一些空间。 .secondary-content { background: #ffcc80; color:
我是一名优秀的程序员,十分优秀!