从表单元素中抓取颜色似乎不适用于 CSS 变量
Grabbing color from form element doesn't seem to work for CSS Variable
所以我试图获取用户输入并将其作为整个站点的 CSS 变量,但它只为我提供了(颜色选择器的)默认值。我在许多论坛上查找了 JS 和 HTML 相关的错误,但没有成功。如果我不必因为我已经设置的 HTML.
的布局而将它们转换成表格,那也太幸运了
var changeclrbtn = document.getElementById('main-colorbtn');
var maincolore = document.getElementById('main-colorbox').value
changeclrbtn.onclick = function() {maincolorset()};
function maincolorset() {
document.documentElement.style.setProperty('--main-color', maincolore );
}
:root {
--main-color: #499ae8;
}
<div>Color Theme</div>
<div>
<input type="color" id="main-colorbox" name="maincolorbox" value="#499ae8">
<input type="button" value="Change Color" id="main-colorbtn" onclick="maincolorset()">
</div>
你只需要移动这一行:
var maincolore = document.getElementById('main-colorbox').value
在你的函数中。
现在您只需在第一个页面加载时设置 maincolore
变量,而不是在您单击按钮时设置。
var changeclrbtn = document.getElementById('main-colorbtn');
changeclrbtn.onclick = function() {maincolorset()};
function maincolorset() {
var maincolore = document.getElementById('main-colorbox').value;
document.documentElement.style.setProperty('--main-color', maincolore );
}
:root {
--main-color: #499ae8;
}
body {
background: var(--main-color);
}
<div>Color Theme</div>
<div>
<input type="color" id="main-colorbox" name="maincolorbox" value="#499ae8">
<input type="button" value="Change Color" id="main-colorbtn" onclick="maincolorset()">
</div>
所以我试图获取用户输入并将其作为整个站点的 CSS 变量,但它只为我提供了(颜色选择器的)默认值。我在许多论坛上查找了 JS 和 HTML 相关的错误,但没有成功。如果我不必因为我已经设置的 HTML.
的布局而将它们转换成表格,那也太幸运了var changeclrbtn = document.getElementById('main-colorbtn');
var maincolore = document.getElementById('main-colorbox').value
changeclrbtn.onclick = function() {maincolorset()};
function maincolorset() {
document.documentElement.style.setProperty('--main-color', maincolore );
}
:root {
--main-color: #499ae8;
}
<div>Color Theme</div>
<div>
<input type="color" id="main-colorbox" name="maincolorbox" value="#499ae8">
<input type="button" value="Change Color" id="main-colorbtn" onclick="maincolorset()">
</div>
你只需要移动这一行:
var maincolore = document.getElementById('main-colorbox').value
在你的函数中。
现在您只需在第一个页面加载时设置 maincolore
变量,而不是在您单击按钮时设置。
var changeclrbtn = document.getElementById('main-colorbtn');
changeclrbtn.onclick = function() {maincolorset()};
function maincolorset() {
var maincolore = document.getElementById('main-colorbox').value;
document.documentElement.style.setProperty('--main-color', maincolore );
}
:root {
--main-color: #499ae8;
}
body {
background: var(--main-color);
}
<div>Color Theme</div>
<div>
<input type="color" id="main-colorbox" name="maincolorbox" value="#499ae8">
<input type="button" value="Change Color" id="main-colorbtn" onclick="maincolorset()">
</div>