javascript - 根据选择更改颜色

标签 javascript html css

如果我想制作一个展示设计演示,向用户展示 3 个下拉菜单。我希望网站响应用户的选择。

因此,在第一个下拉列表中,您需要选择文本的颜色(包括所有 h1->h6、p 元素、a 元素)。

第二个下拉框是文本阴影(适用于 h1->h6、p 和 a)。

第三个下拉菜单用于字体。我正在通过 fonts.google.com 加载字体

当用户更改其中任何一个时,样式应立即更改。

我有一个 jsfiddle 我当前的代码。该代码可以正常工作,它可以更改颜色、笔划和字体,但只能在它自己的下拉菜单中使用。

如何让它应用到整个页面?

https://jsfiddle.net/cajsw1eq/3/

<script>
function colorFunction(pos) {
   pos.className = pos[pos.selectedIndex].className;
   pos.blur();
}
</script>

最佳答案

我会在选项的 id 标签中设置颜色代码,就像这样,这样您就不必在更改函数中遍历选项的所有不同值。

<option id="#FC6B0A" class="orange" value="1">Orange</option>

然后,您在选择一个选项时调用该函数。我建议将字体、颜色和阴影放在一个函数中。

现在你有两个选择:

使用这个函数,带三个参数。

function change(colorId, shadow, font) {
    if (colorId != null) {
        //example of working code:
        document.getElementsByTagName("BODY")[0].style.color = colorId;
    } 
    if (shadow != null {
        //code...
    }
    if (font != null) {
        //more code..
    }
}

然后像这样调用函数:

 onchange="change(this.options[this.selectedIndex].id, null, null);"

或者,您可以在不使用参数的情况下调用函数,并从函数内部获取值。

关于javascript - 根据选择更改颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45724264/

相关文章:

javascript - 多个滑动div的时间和速度

javascript - knockout 选择数据绑定(bind)

javascript - 如何选择特定类名的所有元素?

html - 为什么 margin auto in flex 使垂直和水平居中

css - 如何在 ionic3 的 scss 文件中使用组件变量

css - 从链接图像中删除 css

javascript - 如何在不使用 eval() 的情况下获得在 Backbone.js 中做不同事情的链接?

javascript - Selenium webdriver JavaScript 无法点击链接

javascript - 当我在 opencart 中加载时出现错误

javascript - 将 div 滚动到 View 中时更改(淡入/淡出)固定背景图像