将变量传递到 Three.JS 中的 HSL 颜色值
Passing variables into HSL color values in Three.JS
我目前在我的代码中设置了 2 个 HSL 颜色:
scene.background = new THREE.Color("hsl(0, 100%, 50%)");
var light = new THREE.AmbientLight("hsl(180, 100%, 50%)");
我正在尝试从我的 CSS 中为 'hue' 传递一个变量。
当我 运行 这段代码时,我能够看到我在 CSS 中定义的 2 个颜色变量,它们分别是 0 和 180:
var style = getComputedStyle(document.body);
console.log(style.getPropertyValue("--color-accent-hue")); // get accent hue color
console.log(style.getPropertyValue("--color-accent-hue-inverse")); // get accent hue inverse color
在我的代码开头,我将它们定义为 JS 变量,如下所示:
const colorAccentHue = style.getPropertyValue('--color-accent-hue');
const colorAccentHueInverse = style.getPropertyValue('--color-accent-hue-inverse');
然后尝试在我的 init()
函数中调用它们,如下所示:
scene.background = new THREE.Color("hsl(colorAccentHue, 100%, 50%)");
var light = new THREE.AmbientLight("hsl(colorAccentHueInverse, 100%, 50%)");`
但我一无所获。我哪里错了?
您可以使用 template literals(或字符串连接)。
scene.background = new THREE.Color(`hsl(${colorAccentHue}, 100%, 50%)`);
var light = new THREE.AmbientLight(`hsl(${colorAccentHueInverse}, 100%, 50%)`);
我目前在我的代码中设置了 2 个 HSL 颜色:
scene.background = new THREE.Color("hsl(0, 100%, 50%)");
var light = new THREE.AmbientLight("hsl(180, 100%, 50%)");
我正在尝试从我的 CSS 中为 'hue' 传递一个变量。
当我 运行 这段代码时,我能够看到我在 CSS 中定义的 2 个颜色变量,它们分别是 0 和 180:
var style = getComputedStyle(document.body);
console.log(style.getPropertyValue("--color-accent-hue")); // get accent hue color
console.log(style.getPropertyValue("--color-accent-hue-inverse")); // get accent hue inverse color
在我的代码开头,我将它们定义为 JS 变量,如下所示:
const colorAccentHue = style.getPropertyValue('--color-accent-hue');
const colorAccentHueInverse = style.getPropertyValue('--color-accent-hue-inverse');
然后尝试在我的 init()
函数中调用它们,如下所示:
scene.background = new THREE.Color("hsl(colorAccentHue, 100%, 50%)");
var light = new THREE.AmbientLight("hsl(colorAccentHueInverse, 100%, 50%)");`
但我一无所获。我哪里错了?
您可以使用 template literals(或字符串连接)。
scene.background = new THREE.Color(`hsl(${colorAccentHue}, 100%, 50%)`);
var light = new THREE.AmbientLight(`hsl(${colorAccentHueInverse}, 100%, 50%)`);