javascript - 动态改变背景颜色

标签 javascript css

如果我有一个元素,我正在监听对文档的点击(可以在任何地方,这部分无关紧要),并且每次点击,我都希望元素的颜色变深,我怎么才能从逻辑上或数字上改变它?

这是我尝试过的:

    on('click', function() {

        var myElementBG = myElement.backgroundColor;

        myElement.style.backgroundColor = myElementBG - 101010;
    });

这里的问题是 myElementBG 返回“#707070”,因此尝试从中减去 101010 会产生 NaN 错误,因为“#”是值的一部分。

有什么想法吗?

最佳答案

试试这个:

JsFiddle

function subtractColorsHex(a, b) {
    a = a.replace('#', '');
    // We don't expect '#' symbol in b
    var decA = parseInt(a, 16);
    var decB = parseInt(b, 16);
    var resultDec = decA - decB;
    var resultHex = Math.abs(resultDec).toString(16);

    return "#" + "000000".substring(0, 6 - resultHex.length) + resultHex;
}

用法:

subtractColorsHex('#070707', '101010');

关于javascript - 动态改变背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23528459/

相关文章:

javascript - 有没有 PHP 函数可以将数字转换为带有千位分隔符的货币?

javascript - 淡出文本并淡入下一个 Canvas

css - Flexbox space-between but center if one element

javascript - 在控制台中打印对象时未定义的输出

javascript - Node (keystonejs)地址已在使用错误,但不是。还有 EACCES 错误。 NGINX 落后

javascript - 在向下钻取时动态设置轴极值

javascript - 意外的标记(对于 javascript

html - 即使在汉堡菜单上滚动,我如何防止 body 滚动?

jquery - 使用 jquery 突出显示字段

javascript - 在 Ajax 完成功能后更改 div html 内容