前端 单标签 纯 CSS 实现红绿灯动画
使用一个div标签画出一个红绿灯并加上灯光切换的动画。 关键思想在于一个标签的box-shadow属性可以同时设置多个。
效果如下:
代码:
html:
{<!--warp标签是后面的蓝色背景--><div class="wrap"><div class="traffic-light"></div></div>
}css:body {margin: 0;/* 绝对定位使height: 100%生效 */position: absolute; height: 100%;width: 100%;}/* 背景图 使用margin auto实现垂直水平居中 */.wrap {position: absolute;top: 0;left: 0;right: 0;bottom: 0;margin: auto;width: 500px;height: 350px;background: rgb(97, 170, 189);}/* 灯框架 */.traffic-light {/* 居中代码 */position: absolute;top: 0;left: 0;right: 0;bottom: 0;margin: auto;text-align: center;/* 绘制图案 */width: 300px;height: 90px;background: #282f2f;border-radius: 50px;box-shadow: 0 0 0 2px #eee inset;}.traffic-light::after {/* 居中代码 */position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);content: '';display: inline-block;width: 70px;height: 70px;border-radius: 50%;animation: traffic-light 5s linear 0s infinite;}@keyframes traffic-light {from {background: transparent; /* 黄灯 */box-shadow: -85px 0 0 0 transparent, /* 红灯 */85px 0 0 0 transparent, /* 绿灯 */-85px 0 15px 0 transparent, /* 红灯光影 */0px 0 15px 0 transparent, /* 黄灯光影 */85px 0 15px 0 transparent; /* 绿灯光影 */}25% {background: transparent; /* 黄灯 */box-shadow: -85px 0 0 0 rgb(247, 78, 26), /* 红灯 */85px 0 0 0 transparent, /* 绿灯 */-85px 0 15px 0 rgb(247, 78, 26), /* 红灯光影 */0px 0 15px 0 transparent, /* 黄灯光影 */85px 0 15px 0 transparent; /* 绿灯光影 */}50% {background: rgb(231, 183, 78); /* 黄灯 */box-shadow: -85px 0 0 0 transparent, /* 红灯 */85px 0 0 0 transparent, /* 绿灯 */-85px 0 15px 0 transparent, /* 红灯光影 */0px 0 15px 0 rgb(231, 183, 78), /* 黄灯光影 */85px 0 15px 0 transparent; /* 绿灯光影 */}75% {background: transparent; /* 黄灯 */box-shadow: -85px 0 0 0 transparent, /* 红灯 */85px 0 0 0 rgb(38, 175, 84), /* 绿灯 */-85px 0 15px 0 transparent, /* 红灯光影 */0px 0 15px 0 transparent, /* 黄灯光影 */85px 0 15px 0 rgb(38, 175, 84); /* 绿灯光影 */}to {background: transparent; /* 黄灯 */box-shadow: -85px 0 0 0 transparent, /* 红灯 */85px 0 0 0 transparent, /* 绿灯 */-85px 0 15px 0 transparent, /* 红灯光影 */0px 0 15px 0 transparent, /* 黄灯光影 */85px 0 15px 0 transparent; /* 绿灯光影 */}}
复制代码
完整代码地址:github.com/junhaogz215…
转载于:https://juejin.im/post/5d29bc9de51d45590a445bdb
前端 单标签 纯 CSS 实现红绿灯动画相关推荐
- 如何使用纯 CSS 创建翻牌动画
下面的示例向您展示了如何使用纯 CSS 创建翻牌动画. 作者:坚果 公众号:"大前端之旅" 华为云享专家,InfoQ签约作者,阿里云专家博主,51CTO博客首席体验官,开源项目GV ...
- html怎么让图标动起来,让ICON生动起来 纯CSS实现带动画的天气图标
让ICON生动起来 纯CSS实现带动画的天气图标 1月 20, 2016 评论 (1) Sponsor CSS3动画属性并不是很多,但重点其实是你怎样去运用它,从简单的hover状态或复杂的小动画,都 ...
- [css] 使用纯CSS代码实现动画的暂停与播放
[css] 使用纯CSS代码实现动画的暂停与播放 一个属性:animation-play-state 取值:paused(暂停)|running(播放) hover取代点击 .stop:hover~. ...
- 纯CSS实现图片动画
纯CSS实现图片动画 1.先网上下载一张sprites动画图片,直接百度搜sprites图片就可. 2.用css设置一个关键帧,确定好起始位置和终止位置, 通过background-position调 ...
- HTML5纯css实现爱心动画效果DW、vscode来自程序员的浪漫表白
HTML5纯css实现爱心动画效果DW来自程序员的浪漫表白 一.拉面版 css部分 *{/* 初始化页面元素内外边距*/margin:0;padding: 0;}body{/* 弹性布局元素垂直水平居 ...
- 前端link标签引入css教程
前端link标签引入css教程 首先我们在桌面新建一个文件 我们在这个文件里分别新建个存放HTML的文件夹以及css层叠样式表格的文件夹 然后我们打开dw,在文件选项找到新建 我们新建一个HTML的的 ...
- HTML中 css红绿黄灯,纯CSS实现红绿灯效果(面试常见)
先看题,别看答案试下吧 ~_~ 1.下面的代码输出的内容是什么? function O(name){ this.name=name||'world'; } O.prototype.hello=func ...
- html5制作天气动画背景,CSS icon图标之纯CSS实现带动画效果的天气图标
CSS3动画属性并不是很多,但重点其实是你怎样去运用它,从简单的hover状态或复杂的小动画,都可以巧妙的用CSS3动画属性来实现. 今天主要是和大家分享一个比较有创意.实用的CSS天气图标动画,静态 ...
- css纯加载动画,纯CSS实现loading动画加载效果
原标题:纯CSS实现loading动画加载效果 loading动画图标的做法有很多.一般不想麻烦的人直接嵌入一张gif的动态图标即可实现!虽然该方法方便快捷,但是对网站的加载速度优化方面还不是最好,制 ...
最新文章
- 几个简单的shell脚本
- Go Channel 详解
- 简单的Android对文件进行读写操作
- 20155238 实验四 Android程序设计
- Quartz.Net分布式任务管理平台(第二版)
- Z-Blog 扩展数据库 字段 二次开发
- 蒙特 卡罗方法matlab,蒙特·卡罗方法中的数学之美,你一定不想错过
- 32g内存 android开发,16G走开 我要32G内存的安卓手机
- libpcre.so.1 cannot be found
- weblogic对JSP预编译、weblogic读取JSP编译后的class文件、ant中weblogic.jspc预编译JSP
- YOLOv5与Faster RCNN相比。 谁赢?
- LLVM语言参考手册之标识符、类型与常量
- 百度地图线路查询路线样式自定义
- 常见的文件名后缀及用法
- h5+css3简单实现网页端五子棋游戏1.0版
- MySQL数据库之备份与恢复
- 学习笔记-----浅谈汇编指令CMP运行机制
- 上市公司绿色专利申请数据(绿色创新数据1)(1990-2021)
- asp.net(c#)文件生成HTML文件
- 算法(笔试题) : 城市天际线