第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

更改輸入顏色元素類型的屬性

更改輸入顏色元素類型的屬性

qq_花開花謝_0 2023-11-13 11:05:59
我想更改一個(gè)屬性,<input type="color"/> 我嘗試通過 javascript 執(zhí)行此操作,但目前我找不到更改該屬性的方法/屬性,該屬性在下圖中用紅色圓圈標(biāo)記,例如將值設(shè)置為 120 。
查看完整描述

5 回答

?
撒科打諢

TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊

由于<input type="color">接受十六進(jìn)制值(即#ffffff:),
因此創(chuàng)建一個(gè)接受 Windows HSL 顏色范圍的函數(shù)

  • 色調(diào) 0 - 239

  • 飽和度 0 - 240

  • 亮度 0 - 240

為簡(jiǎn)單起見,使用內(nèi)存畫布從顏色單元獲取相應(yīng)的 RGBA 值hsl()。
與從像素?cái)?shù)據(jù)中提取 R、G、B 相比 - 只需將每個(gè) 0-255 范圍轉(zhuǎn)換為 即可.toString(16)獲得十六進(jìn)制值:

// Convert Windows Color Picker HSLu 239,240,240 to HEX

function winHSL2HEX(H, S, L) {

? const X = n => (n).toString(16).padStart(2,'0');

? const ctx = document.createElement('canvas').getContext('2d');

? const HSL = `hsl(${~~(H/239*360)},${~~(S/240*100)}%,${~~(L/240*100)}%)`;

? ctx.fillStyle = HSL; ctx.fillRect(0,0,1,1);

? const d = [...ctx.getImageData(0,0,1,1).data];

? return "#"+ X(d[0]) + X(d[1]) + X(d[2]);

}


// Demo time

document.querySelector("#color_1").value = winHSL2HEX(160, 0, 120);

document.querySelector("#color_2").value = winHSL2HEX(67, 70, 120);

document.querySelector("#color_3").value = winHSL2HEX(239, 240, 120);

<input id="color_1" type="color">

<input id="color_2" type="color">

<input id="color_3" type="color">

現(xiàn)在您可以傳遞所需的120Lum 值。

查看完整回答
反對(duì) 回復(fù) 2023-11-13
?
翻過高山走不出你

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊

這些參數(shù)通常稱為HSL顏色值。hsl(hue, saturation, lightness)它們?cè)?CSS 中指定。

CSS 參數(shù)可以立即用作字符串來修改必要的顏色。

如果您想編輯背景,以下內(nèi)容可以幫助您:

document.getElementById('text').style.backgroundColor = "hsl(0, 0%, 100%)";

如果要設(shè)置字體顏色,請(qǐng)使用以下方法:

document.getElementById('text').style.color = "hsl(180, 50%, 50%)";

您可以根據(jù)需要更改樣式屬性。

希望有幫助!


查看完整回答
反對(duì) 回復(fù) 2023-11-13
?
拉莫斯之舞

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊

您可以使用“值”參數(shù):

<input type="color" value="#fa0a00">

如果您有其他格式的顏色,則必須將其轉(zhuǎn)換為十六進(jìn)制。


查看完整回答
反對(duì) 回復(fù) 2023-11-13
?
慕的地10843

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個(gè)贊

HexToHSL可以將顏色轉(zhuǎn)換為 HSL,設(shè)置亮度值,然后轉(zhuǎn)換回 RGB 以設(shè)置表單控件的值。HSLToHex

在控件上,亮度從 0 到 240 變化。我們轉(zhuǎn)換的顏色從 0 到 100 變化,所以在設(shè)置之前我們先除以 240 再乘以 100。

document.getElementById("lumbutton").addEventListener("click", () => {

? var el = document.getElementById("colorsel");

? var color = el.value;

? var hsl = hexToHsl(color);

? var lum = parseInt(document.getElementById("lum").value);

? hsl[2] = lum * (100 / 240); // Change Luminance to typed value

? color = hslToHex(hsl);

? console.log(color);

? el.value = color;

});


function hexToHsl(H) {

? let r = 0, g = 0, b = 0;

? if (H.length == 4) {

? ? r = "0x" + H[1] + H[1]; g = "0x" + H[2] + H[2]; b = "0x" + H[3] + H[3];

? } else if (H.length == 7) {

? ? r = "0x" + H[1] + H[2]; g = "0x" + H[3] + H[4]; b = "0x" + H[5] + H[6];

? }

? r /= 255; g /= 255; b /= 255;

? let cmin = Math.min(r, g, b),

? ? cmax = Math.max(r, g, b),

? ? delta = cmax - cmin,

? ? h = 0, s = 0, l = 0;


? if (delta == 0) h = 0;

? else if (cmax == r) h = ((g - b) / delta) % 6;

? else if (cmax == g) h = (b - r) / delta + 2;

? else h = (r - g) / delta + 4;


? h = Math.round(h * 60);


? if (h < 0) h += 360;


? l = (cmax + cmin) / 2;

? s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));

? s = +(s * 100).toFixed(1);

? l = +(l * 100).toFixed(1);


? return [h, s, l];

}


var hslToHex = function(hsl) {

? var h = hsl[0], s = hsl[1], l = hsl[2];


? s /= 100;

? l /= 100;


? let c = (1 - Math.abs(2 * l - 1)) * s,

? ? ? x = c * (1 - Math.abs((h / 60) % 2 - 1)),

? ? ? m = l - c/2,

? ? ? r = 0, g = 0, b = 0;


? if (0 <= h && h < 60) { r = c; g = x; b = 0; }?

? else if (60 <= h && h < 120) { r = x; g = c; b = 0; }?

? else if (120 <= h && h < 180) { r = 0; g = c; b = x; }

? else if (180 <= h && h < 240) { r = 0; g = x; b = c; }?

? else if (240 <= h && h < 300) { r = x; g = 0; b = c; }?

? else if (300 <= h && h < 360) { r = c; g = 0; b = x; }

??

? // Having obtained RGB, convert channels to hex

? r = Math.round((r + m) * 255).toString(16);

? g = Math.round((g + m) * 255).toString(16);

? b = Math.round((b + m) * 255).toString(16);


? // Prepend 0s, if necessary

? if (r.length == 1) r = "0" + r;

? if (g.length == 1) g = "0" + g;

? if (b.length == 1) b = "0" + b;


? return "#" + r + g + b;

}

<input id="colorsel" type="color" value="#f08871"/>

<input id="lum" value="120">

<input id="lumbutton" type=button value="Set Luminosity value">


查看完整回答
反對(duì) 回復(fù) 2023-11-13
?
慕姐4208626

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊

將“LUM”設(shè)置為 120 的相應(yīng)十六進(jìn)制顏色值為#7F7F7F(因?yàn)槟谶@里使用的是 HSL 顏色,而不是 RGB。所以我們需要將其轉(zhuǎn)換為 HSL)。

然后使用元素value中的屬性<input/>來更改“屬性”。

例子:

<input type="color" value="#7F7F7F"/>

但“色調(diào)”會(huì)自動(dòng)設(shè)置為160,R、G 和 B 會(huì)自動(dòng)設(shè)置為127。


查看完整回答
反對(duì) 回復(fù) 2023-11-13
  • 5 回答
  • 0 關(guān)注
  • 217 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)