javascript - 如何将主体的背景颜色更改为线性渐变颜色
问题描述
我编写了一个代码,将 body 元素的背景颜色更改为三种颜色的随机线性渐变组合,它正在工作,但我认为这不是一种专业的方法,因为它会在每个 html 层次结构中添加一个样式元素时间按钮被按下..
JS的代码是:
const foo = new Array(255);
const sheet = document.styleSheets;
const hText = document.getElementsByClassName('.heading__el');
const btn = document.getElementById('btn');
const color = document.querySelector('.color');
btn.addEventListener("click", function(){
let tiltDeg = 0;
let turningAngle1 = 0;
let turningAngle2 = 35;
let turningAngle3 = 100;
let opacity = 1;
let sheet = document.createElement('style');
sheet.innerHTML = `body { background: linear-gradient(${tiltDeg}deg, rgba(${getRandomNumber()}, ${getRandomNumber()}, ${getRandomNumber()}, ${opacity}) ${turningAngle1}%,
rgba(${getRandomNumber()}, ${getRandomNumber()}, ${getRandomNumber()}, ${opacity}) ${turningAngle2}%, rgba(${getRandomNumber()}, ${getRandomNumber()}, ${getRandomNumber()}, ${opacity}) ${turningAngle3}%) !important}`;
document.body.appendChild(sheet);
color.textContent = (`(${tiltDeg}deg, rgba(${getRandomNumber()}, ${getRandomNumber()}, ${getRandomNumber()}, ${opacity}) ${turningAngle1}%,
rgba(${getRandomNumber()}, ${getRandomNumber()}, ${getRandomNumber()}, ${opacity}) ${turningAngle2}%, rgba(${getRandomNumber()}, ${getRandomNumber()}, ${getRandomNumber()}, ${opacity}) ${turningAngle3}%)`)
color.style.fontSize = "0.5em";
});```
function getRandomNumber() {
return Math.floor(Math.random() * foo.length);
}
解决方案
您可以简单地获取文档的正文元素,然后像这样更改其样式:
document.body.style.background = `linear-gradient(${tiltDeg}deg, rgba(${getRandomNumber()}, ${getRandomNumber()}, ${getRandomNumber()}, ${opacity}) ${turningAngle1}%, rgba(${getRandomNumber()}, ${getRandomNumber()}, ${getRandomNumber()}, ${opacity}) ${turningAngle2}%, rgba(${getRandomNumber()}, ${getRandomNumber()}, ${getRandomNumber()}, ${opacity}) ${turningAngle3}%)`;
推荐阅读
- alexa - 通过语音启用技能时,Alexa 技能未请求许可(通知)
- java - 将 TextField 最大大小绑定到属性
- node.js - 如何将图像、Pdf 和少量参数从 Angular 发送到 Node.Js 服务器
- python - 编译 CPython 时出错:无法从 PyLongObject 转换为 PyObject
- ios - NativeScript:应用程序在模拟器上运行,在真实设备 NS7 Angular10 上崩溃
- c++ - 在派生类中创建构造函数时
- javascript - 正则表达式从 css 中删除 @font-face 规则
- javascript - 如何在javascript中获取鼠标位置?
- graphql - 无法将自定义结果从解析器传递到 Graphql
- django - django - 如何获取团队的所有项目?