首页 > 其他分享 >使用css3实现一个开关灯按钮的动画特效

使用css3实现一个开关灯按钮的动画特效

时间:2024-12-23 09:44:07浏览次数:7  
标签:css3 动画 特效 color switchBtn lightBulb background 按钮

创建一个开关灯按钮的动画特效,我们可以使用HTML、CSS(包括CSS3的动画和过渡效果)以及JavaScript(如果需要动态交互)。以下是一个简单的示例,演示如何使用CSS3来实现一个开关灯按钮的动画效果。

HTML

首先,我们创建一个简单的HTML结构,包括一个按钮和一个表示灯光的元素。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>开关灯按钮动画</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <div class="light-switch">
        <button id="switchBtn">开关灯</button>
        <div id="lightBulb" class="off"></div>
    </div>
    <script src="script.js"></script>
</body>
</html>

CSS (styles.css)

接下来,我们使用CSS来定义按钮和灯光的样式,以及灯光开启和关闭时的动画效果。

body {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    background-color: #333;
    color: white;
    font-family: Arial, sans-serif;
}

.light-switch {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
}

#switchBtn {
    margin-bottom: 20px;
    padding: 10px 20px;
    font-size: 16px;
    cursor: pointer;
    transition: all 0.3s;
}

#switchBtn:hover {
    background-color: #555;
}

#lightBulb {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background-color: transparent;
    border: 2px solid white;
    position: relative;
    transition: background-color 0.5s;
}

#lightBulb.on {
    background-color: yellow;
    box-shadow: 0 0 50px yellow;
}

#lightBulb::before, #lightBulb::after {
    content: '';
    position: absolute;
    background-color: inherit;
    border-radius: 50%;
}

#lightBulb::before {
    width: 70px;
    height: 70px;
    top: 15px;
    left: 15px;
}

#lightBulb::after {
    width: 40px;
    height: 40px;
    top: 30px;
    left: 30px;
}

JavaScript (script.js)

最后,我们使用JavaScript来添加交互功能,使得点击按钮时可以切换灯光的开启和关闭状态。

document.addEventListener('DOMContentLoaded', function() {
    const switchBtn = document.getElementById('switchBtn');
    const lightBulb = document.getElementById('lightBulb');
    let isLightOn = false;
    
    switchBtn.addEventListener('click', function() {
        isLightOn = !isLightOn;
        lightBulb.classList.toggle('on', isLightOn);
        switchBtn.textContent = isLightOn ? '关灯' : '开灯';
    });
});

这个示例中,我们创建了一个简单的开关灯按钮和灯光效果。当点击按钮时,灯光会在开启和关闭状态之间切换,同时按钮的文本也会相应地改变。

标签:css3,动画,特效,color,switchBtn,lightBulb,background,按钮
From: https://www.cnblogs.com/ai888/p/18623195

相关文章

  • 使用css3绘制冒热气的杯子动画特效
    要使用CSS3创建一个冒热气的杯子动画,你可以使用多种CSS特性,如动画、渐变、阴影等。以下是一个简单的示例,展示了如何创建一个基本的杯子形状,并添加一个模拟热气的动画效果。HTML结构:<divclass="cup"><divclass="steam"></div></div>CSS样式:.cup{posit......
  • 使用css3绘制转动磁带的复古录音机特效
    创建一个转动磁带的复古录音机特效需要综合运用HTML、CSS3(包括动画和变换)以及可能的一些JavaScript。以下是一个简化的步骤指南,帮助你开始这个项目:1.HTML结构首先,你需要定义录音机的HTML结构。这包括录音机的主体、磁带、以及任何控制按钮或指示器。<divclass="recorder">......
  • 使用css3绘制企业人员管理树形组织架构图特效
    使用CSS3绘制企业人员管理树形组织架构图是一个有趣且具有挑战性的任务。以下是一个基本的步骤指南,帮助你开始:1.HTML结构首先,你需要定义HTML结构来表示树形组织架构。通常,你可以使用嵌套的<div>或<ul>/<li>元素来表示树形结构。<divclass="organization-tree"><u......
  • 使用css3绘制一只招财猫动画特效
    要使用CSS3绘制一只招财猫的动画特效,我们首先需要定义招财猫的基本形状,然后使用CSS3动画特性来添加动作。以下是一个简单的招财猫示例,包括猫的身体、手臂和招财的动作。HTML结构:<divclass="cat"><divclass="body"></div><divclass="armleft"></div><divcl......
  • 使用css3绘制在道路上行驶的汽车动画特效
    使用CSS3来创建一个在道路上行驶的汽车动画特效是一个有趣且富有挑战性的任务。以下是一个简单的示例,展示了如何使用HTML和CSS3来实现这个效果:HTML结构首先,我们需要定义HTML结构。这包括一个表示道路的元素和一个或多个表示汽车的元素。<!DOCTYPEhtml><htmllang="en"><head......
  • 使用css3绘制卡通雪人特效代码
    创建一个简单的卡通雪人可以通过CSS3来完成。以下是一个简单的示例,它使用了一些基本的CSS3特性,如边框、背景渐变、阴影和变换等。<!DOCTYPEhtml><html><head><style>.snowman{position:relative;width:100px;height:......
  • 108. Web前端网页案例——【国粹京剧文化主题精品网页( 5页)】 大学生期末大作业 html5+
    目录一、网页概述二、网页文件三、网页效果四、代码展示1.html2.CSS3.JS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐♬♬♬欢迎光临我的CSDN!这里是Web前端网页案例大集汇,有各行各业的前端网页案例,每天会持续更新!如果你对Web前端......
  • 171. 大学生HTML5期末大作业 ―【 高端大气的美食网页(6页)】 Web前端网页制作 html5+cs
    目录一、网页概述二、网页文件三、网页效果四、代码展示1.html2.CSS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强欢迎来到我的CSDN主页!Web前端网页制作、大学生期末大作业、课程设计、毕业设计、网页模版源码、学习资料等,更多优质博客文章、网......
  • 【Stable Diffusion】SD迎来动画革命,AnimateDiff快速出图
    如果放在几年前,你告诉我说只需一分钟就能做出一段这样的动画,我是万万不相信的,但是当AI时代来临之后,一切都有了可能。今天给大家介绍一个可以快速在sd中生成动画的方法,就是一个叫做AnimateDiff的免费开源项目。现在已经整合到了webUI上面,使用起来非常方便。注意:(如果大家不......
  • 【Rive】混合动画
    1混合动画简介​【Rive】动画中介绍了Rive中动画的基础概念和一般动画的制作流程,本文将介绍混合动画的基础概念和一般制作流程。Unity中混合动画介绍详见→【Unity3D】动画混合。​混合动画是指同一时刻多个动画按照一定比例同时执行,这些动画控制的动画参数往往是......