/**
* 获取颜色值
*/
const color2RGB = (color) => {
if (typeof color !== 'string' || (color.length !== 7 && color.length !== 4)) return [0, 0, 0];
color = color.substr(1);
if (color.length === 3) {
return color.split('').map(str => parseInt(str + str, 16));
} let result = [];
for (let i = 0; i < 6; i += 2) {
result.push(parseInt(color.substr(i, 2), 16));
} return result;
} /**
* 加深:correctionFactor<0
变亮:correctionFactor>0
-1.0f <= correctionFactor <= 1.0f @colorStr 颜色值:#ff0000
*/
const changeColor = (colorStr, correctionFactor) => {
let color = color2RGB(colorStr)
let red = parseFloat(color[0]);
let green = parseFloat(color[1]);
let blue = parseFloat(color[2]); if (correctionFactor < 0) {
correctionFactor = 1 + correctionFactor;
red *= correctionFactor;
green *= correctionFactor;
blue *= correctionFactor;
}
else {
red = (255 - red) * correctionFactor + red;
green = (255 - green) * correctionFactor + green;
blue = (255 - blue) * correctionFactor + blue;
} if (red < 0) red = 0; if (red > 255) red = 255; if (green < 0) green = 0; if (green > 255) green = 255; if (blue < 0) blue = 0; if (blue > 255) blue = 255; red = parseInt(red);
green = parseInt(green);
blue = parseInt(blue) return [red, green, blue];
}

第一种方式:

  使用rgba()对颜色进行透明度调整, 例如:rgba(0,0,0,0.5)

     let color = `rgba(${color2RGB('#FF0000').join(',')},0.1)`;

第二种方式:

  使用changeColor方法来计算颜色的加深、变浅度

let color =`rgb(changeColor('#FF0000', -0.4).join(',')},0.1)`;

第三种方式:

  使用背景色重叠来实现加深效果

    .aa {
width: 200px;
height: 200px;
background-color: #ff0000;
position: relative;
}
.btn {
width: 80px;
height: 80px;
background-color: rgb(0, 0, 0, 0.2);
border-radius: 5px;
position: absolute;
top: 20px;
left: 20px;
}   <div class='aa'>
    <div class='btn'>我是浮层按钮</div>
  </div>

js 改变颜色值的更多相关文章

  1. 【问题】js 改变鼠标样式,chrome浏览器不能立即更新,暂没有解决办法

    元素的css,cursor可以改变鼠标样式.也就是鼠标放到元素上去时,改变为相应状态. 通过JS改变cursor时,我发现chrome浏览器不能立即更新,需要动一下鼠标才行,试了几个其它浏览器都是立即 ...

  2. js改变HTML元素的值

    js改变HTML元素的值(常用,备忘) <!DOCTYPE html> <html> <body> <h1>我的第一段 JavaScript</h ...

  3. JS改变input的value值不触发onchange事件解决方案 (转)

    方法(一)(转载的网络资料) 需要了解的知识     首先,我们需要了解onchange和onpropertychange的不同: IE下,当一个HTML元素的属性改变的时候,都能通过 onprope ...

  4. js改变盒子大小(上下左右)分析

    js改变盒子大小 知识点 三个mouse事件:mousedown mousemove mouseup css的定位和cursor 思路 先解决单边问题识别范围,得到所选区域 event. 根据距离,判 ...

  5. js改变或添加className

    js改变或添加className <style type="text/css"> .newDiv { font-weight: bold; } </style&g ...

  6. js改变下拉框内容

      js改变下拉框内容 CreateTime--2018年4月8日18:47:38 Author:Marydon 适用场景:通常情况下,级联菜单.通过ajax异步获取后台数据改写下拉框内容会有这种需求 ...

  7. 用JS改变的元素CSS样式,css里display :none 隐藏 block 显示

    CSS样式的引用有3种方式:style引用.class引用.id引用,所以js改变元素的样式我们也分3种来说. 1.js改变由style方式引用的样式:方法一:document.divs.style. ...

  8. js改变css样式

      CreateTime--2017年10月31日15:14:12 Author:Marydon js改变css样式 1.js改变单个css样式 HTML部分 <div id="tes ...

  9. 用JS改变页面中b标签的样式啊 样式的等

    用JS改变页面中b标签的样式啊 样式的等    ,实际上是在标签内加上样式 ,用媒体查询的话 ,不能生效 <!DOCTYPE html> <html lang="en&qu ...

随机推荐

  1. golang "text/template" 模板语法简明教程

    转自:https://www.cnblogs.com/Pynix/p/4154630.html [模板标签] 模板标签用"{{"和"}}"括起来   [注释] ...

  2. servlet的执行过程简介(从tomcat服务器和web应用的角度)

    该链接详解htttp请求和响应 http://www.cnblogs.com/goxcheer/p/8424175.html 1.web应用工程发布到tomcat服务器 2.客户端访问某个web资源, ...

  3. Python绘制2D图像

    封装了一个简单的2d绘图函数 from matplotlib import pyplot as plt def plot_line(*args, **kw): """ : ...

  4. 【Unix网络编程】chapter6IO复用

    chapter6  6.1 概述 I/O复用典型使用在下列网络应用场合. (1):当客户处理多个描述符时,必须使用IO复用 (2):一个客户同时处理多个套接字是可能的,不过不叫少见. (3):如果一个 ...

  5. centos7 安装后静态ip的配置

    centos7 想到于centos6.5来说界面上看起来更加炫一点,但是在配置静态ip上来说是差不多的 首先看一下centos7的安装界面,相对来说简洁好看一些 先打开终端 可以看到centos7默认 ...

  6. Windows NAT端口映射

    由于有需求进行端口映射,又不想装乱七八糟的软件,Windows本身自带的路由远程访问配置太麻烦,还要两块网卡,坑爹啊. 其实Windows本身命令行支持配置端口映射,条件是已经安装了IPV6,启不启用 ...

  7. web分页打印

    添加css: page-break-before:always 实现分页 window.print()//实现打印

  8. 【Excel】绘图案例_常见复合图:簇状图+堆积图+折线图

    前言 最近有朋友让我帮忙用excel画图,老实说我很讨厌用excel画图,点来点去,复杂一些还不能复用,非常繁琐.当然,入门也很简单.需求时不同城市.不同产品的2016和2017销量及环比数据,这应该 ...

  9. SVG:中国地图

    中国地图 <svg height="578" version="1.1" width="718" xmlns="http:/ ...

  10. nginx 服务器常见配置以及负载均衡

    # 配置启动用户,用户权限不够会出现访问 403 的情况 user root; # 启动多少个工作进程 worker_processes 1; # 错误日志文件进程文件的保存地址 error_log ...