自动生成列表,颜色随机 ,定时执行函数,10秒停止执行函数,按钮执行函数

news2024/12/25 9:31:35

 

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>颜色列表Color List</title>
    <style>
        * {
            padding: 0;
            margin: 0;
        }
        body {
            background-color: #2c3e50;
            padding: 20px;
        }
        .ulList {
            display: flex;
        }
        li {
            width: 51px;
            height: 51px;
            list-style: none;
            margin: 5px;
        }
    </style>
</head>
<body>
    <button onclick="generateUl()">随机颜色列表Random Color List</button>
    <button onclick="generateUl2()">生成列表 Generate List </button>
</body>
<script>
    function generateUl() {
        function clearPreviousList() {
            // 清空之前的列表
            let existingLists = document.querySelectorAll('ul.ulList');
            existingLists.forEach((list) => {
                list.parentNode.removeChild(list);
            });
        }
        clearPreviousList()
        function clearPreviousHr() {
            // 找到所有现有的 hr 元素
            let existingHrs = document.querySelectorAll('hr');
            // 逐一删除每个 hr 元素
            existingHrs.forEach((hr) => {
                hr.parentNode.removeChild(hr);
            });
        }
        clearPreviousHr()
        for (let i = 0; i < 6; i++) {
            let hr = document.createElement('hr');
            let ul = document.createElement('ul');
            // 添加类名
            ul.className = "ulList";
            document.querySelector('body').appendChild(ul);
            // 生成 13 个 li
            for (let j = 0; j < 6; j++) {
                // 创建 li 元素
                let hr = document.createElement('hr');
                let li = document.createElement('li');
                ul.appendChild(li);
                ul.appendChild(hr)
            }
            ul.insertAdjacentHTML('beforebegin', '<hr>');
            // 找到所有的li元素
            var listItems = document.querySelectorAll('li');
            for (var k = 0; k < listItems.length; k++) {
                var randomColor = '#' + Math.floor(Math.random() * 16777215).toString(16);
                listItems[k].style.backgroundColor = randomColor;
            }
        }
        function generateHr() {
            // 获取文档中最后一个 class 为 ulList 的 ul 元素
            let lastUl = document.querySelectorAll('ul.ulList')[document.querySelectorAll('ul.ulList').length - 1];
            // 创建 hr 元素
            let hr = document.createElement('hr');
            // 在最后一个 ul 元素后面添加一个 hr 元素
            lastUl.insertAdjacentElement('afterend', hr);
            // 在每个 <ul> 元素内部的第一个 <li> 元素前面添加 <hr> 标签
            let ulElements = document.querySelectorAll('ul.ulList');
            ulElements.forEach((ul) => {
                let firstLi = ul.querySelector('li');
                let hr = document.createElement('hr');
                firstLi.insertAdjacentElement('beforebegin', hr);
            });
        }
        generateHr()
    }
    function stopGenerating() {
        clearInterval(intervalId);
    }
    // 每秒执行一次 generateUl 函数
    let intervalId = setInterval(generateUl, 1000);
    setTimeout(stopGenerating, 10000); // 10秒后停止执行 generateUl
    // 生成 5 个 ul
    function generateUl2() {
        /*
    // 清空之前的列表
    let existingLists = document.querySelectorAll('ul.ulList');
    existingLists.forEach((list) => {
        list.parentNode.removeChild(list);
    });*/
        // 找到所有现有的 hr 元素
        let existingHrs = document.querySelectorAll('hr');
        // 逐一删除每个 hr 元素
        existingHrs.forEach((hr) => {
            hr.parentNode.removeChild(hr);
        });
        for (let i = 0; i < 5; i++) {
            let hr = document.createElement('hr');
            let ul = document.createElement('ul');
            // 添加类名
            ul.className = "ulList";
            document.querySelector('body').appendChild(ul);
            // 生成 13 个 li
            for (let j = 0; j < 6; j++) {
                // 创建 li 元素
                let hr = document.createElement('hr');
                let li = document.createElement('li');
                ul.appendChild(li);
                ul.appendChild(hr)
            }
            ul.insertAdjacentHTML('beforebegin', '<hr>');
            // var colors = ['#ff0000', '#00ff00', '#0000ff', '#ffff00', '#00ffff', '#ff00ff', ];
            var colors = ['#800000', '#008000', '#000080', '#808000', '#800080', '#008080']
            // 找到所有的li元素
            var listItems = document.querySelectorAll('li');
            for (var k = 0; k < Math.min(listItems.length, colors.length); k++) {
                listItems[listItems.length - 1 - k].style.backgroundColor = colors[k];
            }
        }
        let lastUl = document.querySelectorAll('ul.ulList')[document.querySelectorAll('ul.ulList').length - 1];
        let hr = document.createElement('hr');
        lastUl.insertAdjacentElement('afterend', hr);
        // 在每个 <ul> 元素内部的第一个 <li> 元素前面添加 <hr> 标签
        let ulElements = document.querySelectorAll('ul.ulList');
        ulElements.forEach((ul) => {
            let firstLi = ul.querySelector('li');
            let hr = document.createElement('hr');
            firstLi.insertAdjacentElement('beforebegin', hr);
        });
    }
</script>
</html>

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

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

相关文章

介绍并改造一个作用于Anki笔记浏览器的插件

在Anki的笔记浏览器窗口中&#xff0c;作为主体部分的表格在对获取到的笔记进行排序时&#xff0c;最多只能有一个排序字段&#xff0c;在设定笔记的排序字段后&#xff0c;没法将表格中的笔记按其他字段进行排序。要满足这个需求&#xff0c;可以使用Advanced Browser插件&…

【ai】初识pytorch

初识PyTorch 大神的例子运行: 【ai】openai-quickstart 配置pycharm工程 简单例子初识一下Pytorch 好像直接点击下载比较慢? 大神的代码 在这个例子中,首先定义一个线性模型,该模型有一个输入特征和一个输出特征。然后定义一个损失函数和一个优化器,接着生成一些简单的线性…

Spring Cloud Config配置信息自动更新原理解析

我们知道Spring Cloud Config是Spring Cloud提供的配置中心实现工具&#xff0c;我们可以通过它把配置信息存放在Git等第三方配置仓库中。每当Spring Cloud Config客户端启动时&#xff0c;就会发送HTTP请求到服务器端获取配置信息&#xff0c;这点比较好理解。但事实上&#x…

一个示例学习C语言到汇编层面

给出以下代码 #include<stdio.h> int main() {int x 0, y 0, z 0;while (1) {x 0;y 1;do {printf("%d\n", x);z x y;x y;y z;} while (x < 255);}return 0; }我们把这个程序编写成32位程序&#xff0c;然后我们放入IDA中进行分析 .text:0080187…

矩阵乘法的直觉

矩阵乘法是什么意思&#xff1f; 一种常见的观点是矩阵乘法缩放/旋转/倾斜几何平面&#xff1a; NSDT工具推荐&#xff1a; Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜…

JavaScript妙笔生花:打造沉浸式中国象棋游戏体验

前言 随着信息技术的飞速发展&#xff0c;Web开发领域也出现了翻天覆地的变化。JavaScript作为前端开发中不可或缺的编程语言&#xff0c;其重要性不言而喻。而当我们谈论到利用JavaScript打造一款沉浸式的中国象棋游戏体验时&#xff0c;我们不仅仅是在开发一个游戏&#xff0…

Web应用安全测试-权限篡改

Web应用安全测试-权限篡改 任意用户密码修改/重置 漏洞描述&#xff1a; 可通过篡改用户名或ID、暴力破解验证码等方式修改/重置任意账户的密码。 测试方法&#xff1a; 密码修改的步骤一般是先校验用户原始密码是否正确&#xff0c;再让用户输入新密码。修改密码机制绕过方式…

【Ubuntu通用压力测试】Ubuntu16.04 CPU压力测试

​ 使用 stress 对CPU进行压力测试 我也是一个ubuntu初学者&#xff0c;分享是Linux的优良美德。写的不好请大佬不要喷&#xff0c;多谢支持。 sudo apt-get update 日常先更新再安装东西不容易出错 sudo apt-get upgrade -y 继续升级一波 sudo apt-get install -y linux-to…

微信分销商城小程序源码系统在线搭建 前后端分离 带完整的安装代码包以及搭建教程

系统概述 本微信分销商城小程序源码系统采用先进的前后端分离架构设计&#xff0c;前端使用Vue.js框架开发&#xff0c;后端则基于Spring Boot构建&#xff0c;确保了系统的高可维护性、扩展性和性能。系统集商品展示、在线交易、会员管理、分销推广、订单处理、数据统计等功能…

redis存储结构

概要 首先&#xff0c;redis是一种"键值对"&#xff08;key-value&#xff09;数据库&#xff0c;也就是说&#xff0c;redis中存储的用户数据都是以key-value的方式存在的&#xff0c;而这些键值对存储于哈希表&#xff0c;这也解释了为什么redis提供的set、lpush、…

vue标签组

先看样式 再看代码 <div v-else class"relative"><n-tabs ref"tabsInstRef" v-model:value"selectValue" class"min-w-3xl myTabs"><n-tab-panev-for"(tab) in songsTags" :key"tab.name" displ…

Java集合框架源码分析:ArrayList

文章目录 一、ArrayList特性二、ArrayList底层数据结构三、ArrayList继承关系1、Serializable标记性接口2、Cloneable标记性接口3、RandomAccess标记性接口4、AbstractList抽象接口 四、ArrayList源码分析1、构造方法2、添加方法3、删除方法4、修改方法5、获取方法6、转换方法7…

数据结构(DS)C语言版:学习笔记(4):线性表

参考教材&#xff1a;数据结构C语言版&#xff08;严蔚敏&#xff0c;吴伟民编著&#xff09; 工具&#xff1a;XMind、幕布、公式编译器 正在备考&#xff0c;结合自身空闲时间&#xff0c;不定时更新&#xff0c;会在里面加入一些真题帮助理解数据结构 目录 2.1线性…

青书学堂 看视频 耍课时

1. 获取课程节点id ( /nynzy/Student/Course/GetStudyRecordAndScore ) 接口地址 2. 把所有的nodeId 保存下来 保存到 old.txt 格式 课程id 与 nodeId 用 | 隔开 3. 然后创建 test.php 注意把 cookie 换成自己的 <?php$oldFilename ./old.txt; $newFilename ./new.…

idea插件开发之在项目右键添加菜单

写在前面 本文看下如何在右键列表中增加菜单。 正戏 首先创建一个Action&#xff0c;要显示的menu选择ProjectViewPopupMenu&#xff0c;如下&#xff1a; action public class CAction extends AnAction {Overridepublic void actionPerformed(AnActionEvent e) { // …

Excel 常用技巧(四)

Microsoft Excel 是微软为 Windows、macOS、Android 和 iOS 开发的电子表格软件&#xff0c;可以用来制作电子表格、完成许多复杂的数据运算&#xff0c;进行数据的分析和预测&#xff0c;并且具有强大的制作图表的功能。由于 Excel 具有十分友好的人机界面和强大的计算功能&am…

新项目Springboot报错: Whitelabel Error Page

问题&#xff1a; 新项目Springboot报错: Whitelabel Error Page 解析&#xff1a; 一般出现这个问题的原因就是目录结构不正确&#xff0c;导致主应用程序类&#xff08;Main application class&#xff09;扫描不到controller类。 默认情况下主应用程序类&#xff08;Main …

【Git】win本地 git bash:Connect reset by 20.205.243.166 port22报错问题解决

win10 git bash 控制台 reset 22端口拒绝连接问题&#xff1a; Connection reset by 20.205.243.166 port 221、22端口 无法连接 ssh -T gitgithub.com2、尝试用443端口 仍然无法连接 ssh -T -P 443 gitgithub.com3、重写 git clone 地址 url&#xff0c;全局添加 https 前缀…

从零到一,深入浅出大语言模型的奇妙世界

2022 年底&#xff0c;OpenAI 发布的 ChatGPT 模型在全球范围内引起了巨大轰动。本文详细的介绍了大语言模型的发展历程、构建过程和大语言模型如何使用等知识&#xff0c;帮助大家搞懂大语言模型。 一、大语言模型发展历程 大模型技术并不是一蹴而就的&#xff0c;大语言模型…

Neo4j Desktop界面认识以及数据库备份与还原

Neo4j Desktop界面认识以及数据库备份与还原 neo4j 版本信息&#xff1a;Neo4j Desktop Version 1.5.9&#xff1b;neo4j 5.12.0 系统信息&#xff1a;windows 11 Neo4j Desktop 界面 每个 Project 下可以有多个 DBMS&#xff0c;而每个 DBMS 中默认有 system 和 neo4j (def…