请马上登录,朋友们都在花潮里等着你哦:)
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 马黑黑 于 2024-5-16 12:14 编辑
代码
var mkRgba = (r,g,b,a) => `rgba(${[r,g,b].map(x => Math.round(Math.random() * (x >= 0 ? x : 255)))},${a ? a : Math.random().toFixed(2)})`;
函数解释:
四个参数中,使用 map 内置函数迭代前三个参数 r、g、b,使之生成rgb三原色随机代码,期间判断参数值是否大于等于0,符合条件使用该参数数值否则使用 255,然后对之取随机数;alpha通道值则依据参数是否配置,若配置使用该配置作为不透明度数值、若不配置使用0~1的随机数(去2位小数点)。函数可以不传参,这将得到rgb都随机、a也随机的颜色,传参则应至少传完rgb三个参数。传参可灵活定制颜色范围,比方说想要红色系的随机颜色,可这样处理:mkRgba(255, 0, 0, .9)。
应用实例
示例代码
<style>
#mydiv { margin: 20px auto; display: grid; place-items: center; width: 400px; height: 200px; position: relative; }
#outMsg { padding: 10px 20px; background: #eee; width: fit-content; border-radius: 20px; }
</style>
<div id="mydiv"><p id="outMsg"></p></div>
<script>
var mkRgba = (r,g,b,a) => `rgba(${[r,g,b].map(x => Math.round(Math.random() * (x >= 0 ? x : 255)))},${a ? a : Math.random().toFixed(2)})`;
mydiv.onclick = () => outMsg.innerText = mydiv.style.background = mkRgba();
mydiv.click();
</script>
|