首頁 > web前端 > js教程 > 如何在 jQuery 中將 RGB 顏色值轉換為十六進位顏色值?

如何在 jQuery 中將 RGB 顏色值轉換為十六進位顏色值?

Barbara Streisand
發布: 2024-12-17 00:05:25
原創
962 人瀏覽過

How to Convert RGB to Hex Color Values in jQuery?

在jQuery 中從RGB 顏色取得十六進位顏色值

問題:

在jQuery 中,css () 方法取得元素的背景顏色為格式中的紅色、綠色和藍色(RGB)值rgb(r,g,b)。然而,一個常見的要求是檢索等效的十六進位顏色值,例如#FFFFFF。

解決方案:

從 RGB 取得十六進位值的傳統方法包括手動轉換,這可能很乏味。幸運的是,一個簡潔的單行函數可以實現這一點:

const rgba2hex = (rgba) => `#${rgba.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+\.{0,1}\d*))?\)$/).slice(1).map((n, i) => (i === 3 ? Math.round(parseFloat(n) * 255) : parseFloat(n)).toString(16).padStart(2, '0').replace('NaN', '')).join('')}`
登入後複製

此函數同時處理 RGB 和 RGBA 格式,確保多功能性。

範例用法:

const element = $('#selector');
const rgbColor = element.css('backgroundColor');
const hexColor = rgba2hex(rgbColor);
登入後複製

更新了現代的答案瀏覽器:

自原始解決方案以來,瀏覽器對ECMAScript 2015 功能的支援已顯著改進。這允許更簡化和簡潔的 RGB 到十六進位轉換:

const rgb2hex = (rgb) => `#${rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/).slice(1).map(n => parseInt(n, 10).toString(16).padStart(2, '0')).join('')}`
登入後複製

此函數提供類似的功能,專門針對 RGB 顏色格式。

以上是如何在 jQuery 中將 RGB 顏色值轉換為十六進位顏色值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板