JS基础练习|点击按钮更改背景色

效果图
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><link rel="stylesheet" href="./styles.css">
</head>
<body><div class="color-changer"><h1>随机背景</h1><p id="color-name"></p><button id="change-color-btn">重随</button><script src="./script.js"></script></div></body>
</html>
body {font-family: 'Roboto', sans-serif;
}.color-changer{margin:30px auto 0;width:500px;height:500px;text-align: center;border:1px solid #ffffff;padding:10px;
}
h1,p{color:#ffffff;border-radius:10px;border:2px solid #ffffff;margin:0 auto 10px;padding:10px;width:200px;
}
// 定义颜色数组
const darkColorsArr = ["#2C3E50","#34495E","#2C2C2C","#616A6B","#4A235A","#2F4F4F","#0E4B5A","#36454F","#2C3E50","#800020",
];
// 定义颜色索引
let colorIndex = 0;
// 获取body
const body = document.querySelector("body");
// 获取展示颜色名的标签
const colorName = document.querySelector("#color-name");
// 获取按钮标签
const changeColorBtn= document.querySelector("#change-color-btn");
// 页面启动时执行的操作
initializeColors();
// 展示当前的颜色名
initializeColorName();
// 初始化颜色的操作
function initializeColors() {randColorIndex();body.style.backgroundColor=darkColorsArr[colorIndex]console.log(darkColorsArr[colorIndex])
}
// 随机获取一个颜色索引
function randColorIndex() {colorIndex= Math.floor(Math.random() * darkColorsArr.length);
}
// 初始化颜色名的操作
function initializeColorName(){colorName.innerHTML="当前颜色名:"+darkColorsArr[colorIndex]
}// 给按钮绑定函数
changeColorBtn.onclick=changeColor
function changeColor(){// 重随一个颜色randColorIndex()body.style.backgroundColor=darkColorsArr[colorIndex]colorName.innerHTML="当前颜色名:"+darkColorsArr[colorIndex]
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1553409.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

《易泊车牌识别相机:精准识别的智能之选》

在如今的智能交通领域&#xff0c;车牌识别技术起着至关重要的作用。而易泊车牌识别相机以其卓越的性能脱颖而出。 易泊车牌识别相机的识别率极高。无论是在白天还是夜晚&#xff0c;无论是清晰的车牌还是稍有磨损的车牌&#xff0c;它都能迅速准确地识别出车牌号码。这得益于其…

多区域OSPF路由协议

前言 之前也有过关于OSPF路由协议的博客&#xff0c;但都不是很满意&#xff0c;不是很完整。现在也是听老师讲解完OSPF路由协议&#xff0c;感触良多&#xff0c;所以这里重新整理一遍。这次应该是会满意的 一些相关概念 链路状态 链路指路由器上的一个接口&#xff0c;链路状…

C++ | Leetcode C++题解之第452题用最少数量的箭引爆气球

题目&#xff1a; 题解&#xff1a; class Solution { public:int findMinArrowShots(vector<vector<int>>& points) {if (points.empty()) {return 0;}sort(points.begin(), points.end(), [](const vector<int>& u, const vector<int>&…

【重学 MySQL】五十一、更新和删除数据

【重学 MySQL】五十一、更新和删除数据 更新数据删除数据注意事项 在MySQL中&#xff0c;更新和删除数据是数据库管理的基本操作。 更新数据 为了更新&#xff08;修改&#xff09;表中的数据&#xff0c;可使用UPDATE语句。UPDATE语句的基本语法如下&#xff1a; UPDATE ta…

秒懂Linux之线程

目录 线程概念 线程理解 地址空间&#xff08;页表&#xff0c;内存&#xff0c;虚拟地址&#xff09; 线程的控制 铺垫 线程创建 ​编辑 线程等待 线程异常 线程终止 代码 线程优点 线程缺点 线程特点 线程概念 线程是进程内部的一个执行分支&#xff0c;线程是C…

【转载翻译】消息队列 - ActiveMQ、RabbitMQ、Kafka、ZeroMQ

转载自本人博客&#xff1a;【转载翻译】消息队列 - ActiveMQ、RabbitMQ、Kafka、ZeroMQ 转载自&#xff1a;The System Design Cheat Sheet: Message Queues - ActiveMQ, RabbitMQ, Kafka, ZeroMQ 本文由 Aleksandr Gavrilenko 发布于2023年12月21日 1. 前言 消息队列是异步服…

TypeScript 算法手册 【归并排序】

文章目录 1. 归并排序简介1.1 归并排序定义1.2 归并排序特点 2. 归并排序步骤过程拆解2.1 分割数组2.2 递归排序2.3 合并有序数组 3. 归并排序的优化3.1 原地归并排序3.2 混合插入排序案例代码和动态图 4. 归并排序的优点5. 归并排序的缺点总结 【 已更新完 TypeScript 设计模式…

Java | Leetcode Java题解之第452题用最少数量的箭引爆气球

题目&#xff1a; 题解&#xff1a; class Solution {public int findMinArrowShots(int[][] points) {if (points.length 0) {return 0;}Arrays.sort(points, new Comparator<int[]>() {public int compare(int[] point1, int[] point2) {if (point1[1] > point2[1…

STM32-MPU6050+DAM库源码(江协笔记)

目录 1、MPU6050简介 2、MPU6050参数 3、MPU6050硬件电路 4、MPU6050结构 5、MPU6000和MPU6050的区别 6、MPU6050应用场景 7、MPU6050电气参数 8、MPU6050时钟源选择 9、MPU6050中断源 10、MPU6050的I2C读写操作 11、DMP库移植 1、MPU6050简介 10轴传感器&#xff1…

AS-REP Roasting 实验

1. 实验网络拓扑 kali: 192.168.72.128win2008: 192.168.135.129 192.168.72.139win7: 192.168.72.149win2012:(DC) 192.168.72.131 2. 攻击原理 如果设置了不需要Kerberos预认证&#xff1a; 那么就可以直接发AS_REQ请求TGT票据&#xff0c;由于不要求预身份认证&#xff0…

Golang | Leetcode Golang题解之第453题最小操作次数使数组元素相等

题目&#xff1a; 题解&#xff1a; func minMoves(nums []int) (ans int) {min : nums[0]for _, num : range nums[1:] {if num < min {min num}}for _, num : range nums {ans num - min}return }

awd基础学习

一、常用防御手段 1、改ssh密码 passwd [user] 2、改数据库密码 进入数据库 mysql -uroot -proot 改密码 update mysql.user set passwordpassword(新密码) where userroot; 查看用户信息密码 select host,user,password from mysql.user; 改配置文件 &#xff08;否则会宕机…

信息安全工程师(30)认证概述

前言 认证&#xff0c;作为一种信用保证形式&#xff0c;是通过一系列的程序和标准来确认某人或某物的身份、资格、性能或质量的过程。其重要性不言而喻&#xff0c;是国家规范经济、促进发展的重要手段&#xff0c;也是政府保障产品、生态和人民生命财产安全的关键措施&#…

绑定Rust变量会踩什么坑

讲动人的故事&#xff0c;写懂人的代码 3.2 变量绑定的声明和初始化分开 在3.1.1中提到&#xff0c;变量的声明和初始化可以分开。而这也为程序员挖了一个坑&#xff0c;如代码清单3-4所示。 本书代码下载链接为github.com/wubin28/book_LRBACP。本书所有的代码清单&#xff…

【电路基础 · 2】电阻电路的等效变换(自用)

总览 1.电路的等效变换 1.1 电阻电路 1.2 等效变换是什么 1.3 线性电路和非线性电路 1.4 时变电路和非时变电路 1.5 二端网络&#xff08;一端口网络&#xff09;、四端网络&#xff08;二端口网络&#xff09;、六端网络&#xff08;三端口网络&#xff09; 1.6 两端电路的等…

51c自动驾驶~合集1

我自己的原文哦~ https://blog.51cto.com/whaosoft/11466109 #HTCL 超过所有视觉方案&#xff01;HTCL&#xff1a;分层时间上下文问鼎OCC 本文是对ECCV2024接受的文章 HTCL: 的介绍&#xff0c;HTCL在SemanticKITTI基准测试中超过了所有基于相机的方法&#xff0c;甚至在和…

中安未来 OCR—— 开启文字识别新时代

在数字化的浪潮中&#xff0c;高效准确的文字识别技术正发挥着越来越重要的作用。今天&#xff0c;我要向大家介绍一款令人惊艳的 OCR 解决方案 —— 中安未来 OCR。 一、初识中安未来 OCR 中安未来 OCR 以其强大的功能和卓越的性能&#xff0c;在众多文字识别工具中脱颖而出。…

森林火灾检测数据集 7400张 森林火灾 带标注 voc yolo

森林火灾检测数据集 7400张 森林火灾 带标注 voc yolo 森林火灾检测数据集 名称 森林火灾检测数据集 (Forest Fire Detection Dataset) 规模 图像数量&#xff1a;共7780张图像。类别&#xff1a;仅包含一种类别——火源。 数据划分 训练集 (Train)&#xff1a;通常占总数据…

死锁的成因与解决方案

目录 死锁的概念与成因 栗子 死锁的情况 哲学家问题 如何避免死锁 必要条件 死锁的解决方案 总结 死锁的概念与成因 多个线程同时被阻塞,他们中的其中一个或者全部都在等待某个资源的释放,导致线程无限期被阻塞,程序无法停止 栗子 我和美女a出去吃饺子,吃饺子要醋和酱油…