使用javascript實現(xiàn)一個在線RGB顏色轉(zhuǎn)換器
背景
目前已經(jīng)有很多網(wǎng)頁版在線小工具,之前很多窗體化的工具也逐漸網(wǎng)頁化,比如:PS畫圖軟件,也都能直接網(wǎng)頁化進行設(shè)計,
網(wǎng)頁真的是無所不能了。由于自己實際項目經(jīng)常會用到顏色轉(zhuǎn)換,所以直接自己開發(fā)個簡單版的在線顏色轉(zhuǎn)換小工具。
RGB轉(zhuǎn)HEX
效果

代碼
<html>
<head>
<meta charset="utf-8" />
<title>顏色在線轉(zhuǎn)換</title>
<style type="text/css">
</style>
</head>
<body>
<!---->
<div style="display: flex; margin-top: 100px;">
<div style="display:flex;width:260px;">
<div style="width:60px;height: 35px;line-height: 35px;text-align: center;background: #ccc;">
<span>RGB</span>
</div>
<div style="width:200px;height: 33px;line-height: 33px;border: 1px solid #ccc;">
<input id="txtRgb" placeholder="請輸入RGB值 如:255,255,255" style="width:100%;padding: 7px 7px;outline: none;background: none;border: none;">
</div>
</div>
<div style="height: 35px; line-height: 35px;padding:0 10px;">
<span>轉(zhuǎn)為</span>
</div>
<div style="display:flex;width:260px;">
<div style="width:60px;height: 35px;line-height: 35px;text-align: center;background: #ccc;">
<span>HEX</span>
</div>
<div style="width:200px;height: 33px;line-height: 33px;border: 1px solid #ccc;">
<input id="txtHex" readonly="readonly" style="width:100%;padding: 7px 7px;outline: none;background: none;border: none;">
</div>
</div>
</div>
</body>
</html>
<script type="text/javascript">
var rgb = document.getElementById('txtRgb');
var hex = document.getElementById('txtHex');
rgb.onkeyup = function () {
if (rgb.value && rgb.value.split(',').length == 3) {
var hexValue = rgbToHex("rgb(" + rgb.value + ")");
hex.value = hexValue;
}
}
//
function rgbToHex(rgb) {
// 使用正則表達式提取出數(shù)字部分
var rgbArray = rgb.match(/\d+/g);
// 將 RGB 分量轉(zhuǎn)換為十六進制,并補零
var r = parseInt(rgbArray[0]).toString(16).padStart(2, '0');
var g = parseInt(rgbArray[1]).toString(16).padStart(2, '0');
var b = parseInt(rgbArray[2]).toString(16).padStart(2, '0');
// 將結(jié)果拼接為 HEX 格式
var hex = '#' + r + g + b;
return hex;
}
</script>
HEX轉(zhuǎn)RGB
效果

代碼
<html>
<head>
<meta charset="utf-8" />
<title>顏色在線轉(zhuǎn)換</title>
<style type="text/css">
</style>
</head>
<body>
<!---->
<div style="display: flex; margin-top: 50px;">
<div style="display: flex; width: 260px;">
<div style="width:60px;height: 35px;line-height: 35px;text-align: center;background: #ccc;">
<span>HEX</span>
</div>
<div style="width: 200px; height: 33px; line-height: 33px; border: 1px solid #ccc;">
<input id="txtHex2" placeholder="請輸入HEX值 如:#FFFFFF" style="width:100%;padding: 7px 7px;outline: none;background: none;border: none;">
</div>
</div>
<div style="height: 35px; line-height: 35px;padding:0 10px;">
<span>轉(zhuǎn)為</span>
</div>
<div style="display: flex; width: 260px;">
<div style="width:60px;height: 35px;line-height: 35px;text-align: center;background: #ccc;">
<span>RGB</span>
</div>
<div style="width: 200px; height: 33px; line-height: 33px; border: 1px solid #ccc;">
<input id="txtRgb2" readonly="readonly" style="width:100%;padding: 7px 7px;outline: none;background: none;border: none;">
</div>
</div>
</div>
</body>
</html>
<script type="text/javascript">
var hex2 = document.getElementById('txtHex2');
var rgb2 = document.getElementById('txtRgb2');
hex2.onkeyup = function () {
if (hex2.value.length == 7) {
var rgbValue = hexToRgb(hex2.value);
rgb2.value = rgbValue;
}
}
//
function hexToRgb(hex) {
// 去掉 # 號并分割成 r、g、b 三個部分
var hexValue = hex.replace('#', '');
var r = parseInt(hexValue.substring(0, 2), 16);
var g = parseInt(hexValue.substring(2, 4), 16);
var b = parseInt(hexValue.substring(4, 6), 16);
// 返回 RGB 格式字符串
var rgb = 'rgb(' + r + ', ' + g + ', ' + b + ')';
return rgb;
}
</script>
什么是RGB
RGB(紅綠藍)是一種讓我們能夠創(chuàng)造出各種色彩的加法色彩模式。
在 RGB 模式下,顏色是通過混合三種紅、綠、藍的顏色成分來實現(xiàn)的。
這三種顏色可以以不同的深淺程度混合在一起,從而形成數(shù)百萬種不同的顏色。
在前端開發(fā)中,RGB 經(jīng)常被用來指定網(wǎng)頁或者應(yīng)用程序中的顏色。
RGB原理
RGB(紅綠藍)顏色模型是一種加法顏色混合模式,通過調(diào)節(jié)三種顏色的亮度來實現(xiàn)。
每種顏色有一個亮度范圍從 0 到 255,0 表示完全暗,255 表示最亮。通過調(diào)節(jié)紅色、綠色和藍色的值,可以創(chuàng)建出所有的其他顏色。
當三種原色的值都為最小值時(即為0),得到的是黑色。當三種原色的值都為最大值時(即為255),得到的是白色。
通過增加或減少其中一種或多種原色的值,可以得到任意其他顏色。
例如,紅色可以通過將紅色分量設(shè)置為最大值 255,而將綠色和藍色分量設(shè)置為最小值 0 來創(chuàng)建。
類似地,綠色和藍色都可以分別單獨設(shè)置為最大值來得到純綠和純藍顏色。
在 CSS 中,顏色值可以使用 RGB 表示,
例如 rgb(255, 0, 0) 表示純紅色。
第一個參數(shù)是紅色分量值,
第二個參數(shù)是綠色分量值,
第三個參數(shù)是藍色分量值。
通過調(diào)整這些分量的值,可以獲得所需的顏色。
HEX16
十六進制:英文名稱,Hexadecimal
十六進制顏色值(HEX16)是指由六個十六進制數(shù)字組成的顏色編碼,用于表示 RGB 顏色空間中的顏色。
每個十六進制數(shù)字可以取 0 到 9 的數(shù)字以及 A 到 F 的字母,表示 16 種可能的值,因此稱為十六進制值。
在 HTML 和 CSS 中,常用的表示十六進制顏色值的方法是在 “#” 符號后面附加六個十六進制字符。
例如,紅色的十六進制顏色值是 #FF0000,其中前兩個字符表示紅色分量的值,后面的四個字符分別表示綠色和藍色分量的值。
通過將每個分量的十六進制值轉(zhuǎn)換為十進制(即從 16 進制到 10 進制的轉(zhuǎn)換),可以得到每個分量的值,進而得到完整的 RGB 值。
HEX16 色全名是十六進制顏色值的完整名稱。這些名稱是根據(jù)對應(yīng)的顏色值或者顏色特征而命名的。以下是一些常見的 HEX16 色全名示例:
- #FF0000: 紅色
- #00FF00: 綠色
- #0000FF: 藍色
- #FFFFFF: 白色
- #000000: 黑色
- #FFFF00: 黃色
- #FF00FF: 品紅色
- #00FFFF: 青色
- #808080: 灰色
- #FFA500: 橙色
這只是一小部分例子,實際上可以使用數(shù)百種不同的 HEX16 色全名來描述各種顏色。每種顏色都有其特定的 HEX16 色全名,用于更準確地識別和描述顏色。
以上就是使用javascript開發(fā)在線RGB顏色轉(zhuǎn)換器的詳細內(nèi)容,更多關(guān)于javascript在線RGB顏色轉(zhuǎn)換的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Layui帶搜索的下拉框的使用以及動態(tài)數(shù)據(jù)綁定方法
今天小編就為大家分享一篇Layui帶搜索的下拉框的使用以及動態(tài)數(shù)據(jù)綁定方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09
使用JS實現(xiàn)一個Sleep函數(shù)的示例代碼
這篇文章主要介紹了使用JS實現(xiàn)一個Sleep函數(shù),實現(xiàn)?sleep?函數(shù)其實非常簡單,主要是理解?JavaScript?中異步執(zhí)行情況,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2022-06-06
Javascript表單特效之十大常用原理性樣例代碼大總結(jié)
開頭說這個常用原理性樣例,大家可能不太清楚,這篇文章主要是針對實際開發(fā)中常用的一些代碼分析,主要是針對表單處理方法的一些資料,推薦大家收藏2016-07-07
JavaScript實現(xiàn)手機號碼 3-4-4格式并控制新增和刪除時光標的位置
這篇文章主要介紹了JavaScript實現(xiàn)手機號碼 3-4-4格式并控制新增和刪除時光標的位置,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06
JavaScript中net::ERR_CONNECTION_REFUSED解決方法大全
在一次測試中遇到了報net::ERR_CONNECTION_REFUSED的錯誤,五哦一下面這篇文章主要給大家介紹了關(guān)于JavaScript中net::ERR_CONNECTION_REFUSED解決方法的相關(guān)資料,需要的朋友可以參考下2022-10-10
JavaScript常用函數(shù)工具集:lao-utils
現(xiàn)在Javascript庫海量,流行的也多,比如jQuery,YUI等,雖然功能強大,但也是不萬能的,功能不可能涉及方方面面,這里給大家分享一個的JS庫是對這些的補充,很多也比較實用,把應(yīng)用到項目中中去也比較方面,這也是對工作的一些積累,也加深對知識的理解。2016-03-03

