微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript-在rgba中实时编辑RGB值

我正在建立一个网站,希望用户能够更改div之一的颜色.用rgba设置颜色,因为我希望它是透明的.

我遇到的问题是,我找到了一个颜色选择器,但是我更改了RGB,却又不增加不透明度.到目前为止,这是我的方法

<input class="color" type="text" onchange="document.getElementById('main-info').style.backgroundColor = '#' + this.color;">

显然,我用十六进制替换了实时版本的rgba,这消除了不透明性.我尝试过的其他事情是:

<input class="color" type="text" onchange=" document.getElementById('id_info_Box_bg_color').value = (Math.floor(this.color.rgb[0]*255)) + ', ' + (Math.floor(this.color.rgb[1]*255)) + ', ' + (Math.floor(this.color.rgb[2]*255));">

它成功获取了rgba值,但我无法将其正确插入到rgba中.

有人知道我该如何更换部分rgba吗?所以我只是在rgba(X,X,X,.5)中更改X

解决方法:

我不知道是否可以仅替换部分rgba值,但是如果div的颜色在css中用rgba设置,则可以通过询问css属性来检索rgba字符串值:

$('#myDiv').css('background-color');

这将返回一个看起来像这样的字符串(例如):“ rgba(255,0,0,0.496094)”,或者,如果不透明度设置为1,“ rgb(255,0,0)”解析出Alpha通道值,并在设置新的rgba值时使用它.我敢肯定,有一个比我聪明的人可以找到一种从字符串中提取值的有效方法(或者至少不像我那么懒.)当您要为div设置新颜色时:

$('#myDiv').css('background-color', 'newColor');

其中新颜色是一个字符串,您使用与在css中设置它时相同的形式构造该字符串,或者使用上面从原始字符串中提取的相同alpha值随后如上所示进行检索.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐