使用 JavaScript 和 CSS 的随机颜色生成器

简介: 使用 JavaScript 和 CSS 的随机颜色生成器

✨ 项目基本结构


目录结构如下:

├── css
│   └── style.css
├── js
│   └── script.js
└── index.html

第一步:颜色生成器的基本结构

我使用了以下的 HTML 和 CSS 代码创建了这个颜色生成器的基本结构。在添加所有信息的页面上创建了一个小框,框的背景颜色为白色。

<div class="container">
</div>
*{
    padding: 0;
    margin: 0;
    box-sizing: border-box;
    border: none;
    outline: none;
    font-family: sans-serif;
}
body{
    background-color: #0574c8;
}
.container{
    background-color: white;
    width: 60vmin;
    padding: 2.5em 1.1em;
    position: absolute;
    transform: translate(-50%,-50%);
    top: 50%;
    left: 50%;
    font-size: 3vmin;
    border-radius: 10px;
}

image.png

第 2 步:使用 HTML 添加标题

现在,我们使用 HTML 的 h1 标签在此框中添加一个标题来增强一下美感,并在 CSS 的帮助下进行了设计。

<h1>Color Generator</h1>
.container h1{
  font-size: 27px;
  text-align: center;
  margin-top: -20px;
  color: #09599a;
  margin-bottom: 20px;
}

image.png

步骤 3:创建用于颜色查看的显示器

HTML 和 CSS 代码有助于创建显示,显示器基本上是通过产生颜色来观看的。每当你点击生成按钮时,都可以在此显示中看到颜色。它的宽度为 100%,高度为 30vmin,并用了箱形阴影来增强美感。

<div id="output-color">
    <span></span>
 </div>
#output-color{
    position: relative;
    height: 30vmin;
    width: 100%;
     box-shadow: 0 0 20px rgba(0,139,253,0.25);
    border: 2px solid #ffffff;
    margin: auto;
    display: grid;
    margin-bottom: 15px;
    place-items: center;
}
#output-color span{
    display: block;
    width: 100%;
    height: 100%;
}

我们使用下面的 CSS 添加一种动画,只要在显示器中可以看到这种颜色,就会出现一种动画。

.show-color{
    animation: pop 0.8s;
}
@keyframes pop{
    0%{
        transform: scale(0);
    }
    100%{
        transform: scale(1);
    }
}

image.png

第 4 步:创建一个框以查看颜色代码

现在我们创建一个小盒子,可以看到这个生成颜色的代码。

 <input type="text" id="output" readonly>
input[type="text"]{
    width: 100%;
    background-color: transparent;
    box-shadow: 0 0 20px rgba(0,139,253,0.65);
    font-size: 1.3em;
    padding: 0.3em 0;
    margin: 1em 0;
    border-radius: 5px;
    color: #000000;
    text-align: center;
}
input[type="text"]::-moz-selection{
    background: transparent;
}
input[type="text"]::selection{
    background: transparent;
}

image.png

第 5 步:创建生成器和复制按钮

现在创建两个按钮来生成颜色和复制颜色,按钮的宽度为 120 像素,高度取决于填充。

 <div class="btns">
     <button id="gen-btn">Generate</button>
     <button id="copy-btn">Copy</button>
 </div>
.btns{
    display: flex;
    margin-top: 15px;
    justify-content: space-around;
}
.btns button{
    font-size: 1.03em;
    padding: 0.8em 1.7em;
    border-radius: 7px;
    width: 120px;
    font-weight: 600;
    cursor: pointer;
}

以下 CSS 代码有助于为两个按钮添加不同的背景颜色。第一个按钮外壳添加了蓝色,第二种添加了红色,你也可以根据自己的喜好更改背景颜色。

#gen-btn{
    background-color: #205e94;
    color: #ffffff;
}
#copy-btn{
    background-color: #d23332;
    color: #ffffff;
}

image.png

第 6 步:使用 JavaScript 激活随机颜色生成器

上面我们已经设计了这个项目的基础结构,现在是使用 JavaScript 实现它的时候了。

首先我一一设置了两个按钮的颜色显示、颜色代码和ID功能。

let outputColor = document.querySelector("#output-color span");
let output = document.getElementById("output");
let genBtn = document.getElementById("gen-btn");
let copyBtn = document.getElementById("copy-btn");

然后我使用了 HexString。它是一个二进制值,相互结合形成颜色。接着我们把所有的颜色字符加在一起,之后我们将通过使用 JavaScript 随机添加来创建漂亮的颜色。

let hexString = "0123456789abcdef";

现在我们已经完成了生成颜色的工作,数学随机有助于创建随机颜色,这是非常简单的 JavaScript。如果你了解了基本的 JavaScript 就可以轻松地理解它。

let genHexCode = () => {
    let hexCode = "#";
    for( i = 0; i < 6; i++){
        hexCode += hexString[Math.floor(Math.random() * hexString.length)];
    }
    output.value = hexCode;
    outputColor.classList.remove("show-color");
    setTimeout( () => {
        outputColor.classList.add("show-color");
    },10);
    outputColor.style.backgroundColor = hexCode;
}

现在我已经激活了复制按钮。此按钮将帮助我们复制将在上面创建的颜色代码。

copyBtn.addEventListener("click", () => {
    output.select();
    document.execCommand("copy");
})

现在我们也已经激活了生成按钮,创建一个系统来生成颜色,现在我们指示实施该 genHexCode 系统。只要单击“生成”按钮,该系统就会工作,这将创建颜色并且可以在显示器中看到。

window.onload = genHexCode;
genBtn.addEventListener("click", genHexCode);

image.png

到这里我们的随机颜色生成器就完成了,是不是也没那么复杂,还是比较简单的一个小项目。


目录
相关文章
|
人工智能 前端开发 JavaScript
【CodeBuddy】三分钟开发一个实用小功能之:CSS渐变背景生成器
这是一个由AI生成的完整CSS渐变生成器项目,具备可视化交互、实时预览和代码生成功能。通过HTML、CSS和JavaScript实现,支持线性与径向渐变,提供随机生成和复制代码功能。项目展示了AI编程助手在快速原型开发、教学辅助和设计系统集成中的应用价值。其智能上下文感知、全链路代码生成和决策能力,为开发者提供了高效工具支持,助力从样板代码中解放创造力。附带优化方向如增强渐变类型、智能推荐系统及工程化改进,进一步拓展了应用场景。
297 2
【CodeBuddy】三分钟开发一个实用小功能之:CSS渐变背景生成器
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
909 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
前端开发 JavaScript
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
814 14
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
1255 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
html+js+css实现的建筑方块立体数字时钟源码
html+js+css实现的建筑方块立体数字时钟源码
676 33
一个好看的小时钟html+js+css源码
一个好看的小时钟html+js+css源码
314 24
纸屑飘落生日蛋糕场景js+css3动画特效
纸屑飘落生日蛋糕CSS3动画特效是一款js+css3制作的全屏纸屑飘落,生日蛋糕点亮庆祝动画特效。
260 3
JS+CSS3文章内容背景黑白切换源码
JS+CSS3文章内容背景黑白切换源码是一款基于JS+CSS3制作的简单网页文章文字内容背景颜色黑白切换效果。
241 0
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
473 2