javascript - 换色器仅适用于两种颜色

标签 javascript html

我怎样才能使用多种颜色进行这项工作?我也无法获得更改颜色的链接。

var div = document.getElementById('ColorChanger');
div.addEventListener('click', function(e){
    var self = this,
        old_bg = this.style.background;
    
    document.body.style.background = document.body.style.background=='black'? 'white':'black';
    document.body.style.color = document.body.style.color=='lime'? 'black':'lime';
    document.alinkColor = document.linkcolor=='red'? 'black':'red';
   
})
<div id="ColorChanger">A+</div>

<a href="#">
Test
</a>

最佳答案

您可以像这样将所有颜色存储在一个数组中:

var div = document.getElementById('ColorChanger');
var allColors = [];
var currentColor = 0;
allColors.push({bg:"red",front:"green"});
allColors.push({bg:"green",front:"yellow"});
allColors.push({bg:"purple",front:"white"});

div.addEventListener('click', function(e){
    var self = this,
        old_bg = this.style.background;

    document.body.style.background = allColors[currentColor].bg;
    document.body.style.color = allColors[currentColor].front;
   currentColor++;
if(currentColor == allColors.length) currentColor = 0;
})

要使其与链接一起使用,您应该使用 preventDefault。

关于javascript - 换色器仅适用于两种颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46284315/

相关文章:

CSS Matrix3D 变换

javascript - HTML Canvas 在调整大小后更新次数过多

javascript - 输入标签的自动增量宽度

javascript - Magento configurable.js - separatorIndex 做什么?

javascript - 没有地址栏的弹出窗口

javascript - 正则表达式使用连接点和连字符提取数字

html - 绝对类在 IE 中不起作用

javascript - 为什么这个CSS动画(transform : scale) starting in the wrong location?

javascript - 如何处理 vue js 模板中不存在的变量?

html - 使用 flexbox 在 DIV 中居中左对齐元素