js 改变颜色值
/**
* 获取颜色值
*/
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 改变颜色值的更多相关文章
- 【问题】js 改变鼠标样式,chrome浏览器不能立即更新,暂没有解决办法
元素的css,cursor可以改变鼠标样式.也就是鼠标放到元素上去时,改变为相应状态. 通过JS改变cursor时,我发现chrome浏览器不能立即更新,需要动一下鼠标才行,试了几个其它浏览器都是立即 ...
- js改变HTML元素的值
js改变HTML元素的值(常用,备忘) <!DOCTYPE html> <html> <body> <h1>我的第一段 JavaScript</h ...
- JS改变input的value值不触发onchange事件解决方案 (转)
方法(一)(转载的网络资料) 需要了解的知识 首先,我们需要了解onchange和onpropertychange的不同: IE下,当一个HTML元素的属性改变的时候,都能通过 onprope ...
- js改变盒子大小(上下左右)分析
js改变盒子大小 知识点 三个mouse事件:mousedown mousemove mouseup css的定位和cursor 思路 先解决单边问题识别范围,得到所选区域 event. 根据距离,判 ...
- js改变或添加className
js改变或添加className <style type="text/css"> .newDiv { font-weight: bold; } </style&g ...
- js改变下拉框内容
js改变下拉框内容 CreateTime--2018年4月8日18:47:38 Author:Marydon 适用场景:通常情况下,级联菜单.通过ajax异步获取后台数据改写下拉框内容会有这种需求 ...
- 用JS改变的元素CSS样式,css里display :none 隐藏 block 显示
CSS样式的引用有3种方式:style引用.class引用.id引用,所以js改变元素的样式我们也分3种来说. 1.js改变由style方式引用的样式:方法一:document.divs.style. ...
- js改变css样式
CreateTime--2017年10月31日15:14:12 Author:Marydon js改变css样式 1.js改变单个css样式 HTML部分 <div id="tes ...
- 用JS改变页面中b标签的样式啊 样式的等
用JS改变页面中b标签的样式啊 样式的等 ,实际上是在标签内加上样式 ,用媒体查询的话 ,不能生效 <!DOCTYPE html> <html lang="en&qu ...
随机推荐
- tpadmin导入数据库问题
tpadmin导入数据库后,修改表名tp_web_log_all时报1168错误 原因:该为联合表,原始sql语句中的联合表tp_web_log_001未改变表名,必须修改后用sql语句添加该表
- sqlserver数据库设计完整性与约束
use StudentManageDB go --创建主键约束 if exists(select * from sysobjects where name='pk_StudentId') alter ...
- github .net core
https://github.com/dotnet/core/blob/master/Documentation/core-repos.md
- 在线学习和在线凸优化(online learning and online convex optimization)—基础介绍1
开启一个在线学习和在线凸优化框架专题学习: 1.首先介绍在线学习的相关概念 在线学习是在一系列连续的回合(rounds)中进行的: 在回合,学习机(learner)被给一个question:(一个向量 ...
- python类型强转&二级容器
Number 类型强转 int : ---->>> float, bool, complex, str Float : ---->> ...
- 通过C#/.NET API使用CNTK
(原文)CNTK v2.2.0提供C#API来建立.训练和评估CNTK模型. 本节概要介绍了CNTK C#API. 在CNTK github respository中可以找到C#训练示例. 使用C#/ ...
- BCGcontrolBar(二) 改变RIBBON字体
在xp系统下 BCGcontrolBar字体会发虚 这时候重新设置下字体就行了 在单文档的MainFram的onCreate中加入 CFont *font=m_wndRibbonBar.GetFont ...
- Jquery的框架解析
最近闲的刁痛,想看看jQuery源码.但是这个源码看起来 还是挺费劲的.所以呢整理一份框架出来, 避免走入jQuery关键字的误区,我用Gys代替关键字jQuery. 下面是源码: (function ...
- Error: Could not find gradle wrapper within Android SDK. Might need to update your Android SDK. Looked here: C:\Users\Administrator\AppData\Local\Android\sdk\tools\templates\gradle\wrapper
在Windows7上运行 “cordova build Android” 报错,如下: C:\test\hello> cordova build androidANDROID_HOME=C:\U ...
- PHP获取中文首字母的函数
PHP获取中文首字母的函数 <?php header("Content-type: text/html; charset=utf-8"); function getFirst ...