如何增加颜色的亮度 jQuery

How to increase lightness of color jQuery

如何增加 hsl 颜色的亮度(或 l 属性)。

即如果我有一个元素

<div class="myDiv" style="background-color:hsl(240,100%,50%)">My div</div>

如何使用JavaScript或jQuery改变div的亮度。

您可以使用 jquery 更改整个样式属性。请记住,它会替换 style="..." 中的所有内容,并用 myDiv class 替换每个元素,如果您只需要更改一个,请给它一个 id 并定位它。

function myFunction() {
$(document).ready(function () {
 $(".myDiv").css('cssText',"background-color:hsl(240,100%,90%)");
});
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class ="myDiv" style="background-color:hsl(240,100%,50%)">My div</div>
 <button onclick="myFunction()">Click me</button> 

有多种选择,但这里有一个只改变亮度的选择:

var div = document.getElementsByClassName('myDiv')[0];
var newLightness = '70%';
div.outerHTML = div.outerHTML.replace(/(hsl\(.*?,.*?,).*?(\))/, '' + newLightness + '');

这将只编辑 div 的 outerHTML 的亮度。

说明: 由于 w3 的标准,无法从 style 属性中获取 HSL 属性,但 HSL 仍然存在于 DOM 中,因此我们只需替换当前的 div 第 3 个参数对于内联样式的 HSL 函数,我们使用带有捕获组的正则表达式来捕获亮度参数前后的内容,并仅替换亮度。 即使该元素具有 HSL 内联样式的内部元素,也只会更改第一个元素,因为正则表达式中未指定 g 标志。