这次分享的电扇,和以往用css3画人物相比 多加了一点交互,就是电扇开关的地方,用到了一点点css3的 :checked +div 这个很少用到的选择器来实现的。

GitHub传送门:https://github.com/lancer07/css3_fan

效果是这样的

HTML 结构

小技巧就是,一开始就写了一组单选按钮来做开关的部分。把单选按钮的透明度设为0,然后在后面叠加一个div来画开关的样式。

       <div id="fan">
<input type="radio" name="switch" class="switch_0"/>
<div class="switch_btn_0">0</div>
<input type="radio" checked name="switch" class="switch_1"/>
<div class="switch_btn_1">1</div>
<input type="radio" name="switch" class="switch_2"/>
<div class="switch_btn_2">2</div>
<input type="radio" name="switch" class="switch_3"/>
<div class="switch_btn_3">3</div>
<div class="mask">
<div class="logo">CSS3 Fan</div>
<div class="line_1"></div>
<div class="line_2"></div>
<div class="line_3"></div>
<div class="line_4"></div>
<div class="line_5"></div>
<div class="line_6"></div>
<div class="leafs">
<div class="leaf_1"></div>
<div class="leaf_2"></div>
<div class="leaf_3"></div>
</div>
</div>
<div class="header"></div>
<div class="neck"></div>
<div class="neck_footer"></div>
<div class="bottom"></div>
<div class="bottom_footer_1"></div>
<div class="bottom_footer_2"></div>
</div>

开关部分的LESS代码如下

   .switch{
position: absolute;
width: 24px;
height: 24px;
top: 296px;
z-index: 13;
opacity: 0;
cursor: pointer;
} .switch_0{
.switch;
left: 50px;
&:checked+div{
&+input+div+input+div+input+div+.mask{
.leafs{
animation-play-state:paused;
}
}
}
}
.switch_1{
.switch;
left: 75px;
&:checked+div{
background: #a9af27;
color: #0e6873;
&+input+div+input+div+.mask{
.leafs{
animation-duration : 0.7s
}
}
}
}
.switch_2{
.switch;
left: 100px;
&:checked+div{
background: #a9af27;
color: #0e6873;
&+input+div+.mask{
.leafs{
animation-duration : 0.4s
}
}
}
}
.switch_3{
.switch;
left: 125px;
&:checked+div{
background: #a9af27;
color: #0e6873;
&+.mask{
.leafs{
animation-duration : 0.3s
}
}
}
}

看起来有点low。

至于电扇的CSS样式部分就不再赘述了。

有个地方需要优化,就是在换挡的时候,动画应该柔和些。有同学想到用什么办法优化下吗?

本文转载于:猿2048→https://www.mk2048.com/blog/blog.php?id=hih1chbkjkj

【二次元的CSS】—— 纯CSS3做的能换挡的电扇的更多相关文章

  1. 【二次元的CSS】—— 用 DIV + CSS3 画咸蛋超人(详解步骤)

    [二次元的CSS]—— 用 DIV + CSS3 画咸蛋超人(详解步骤) 2016-05-17 HTML5cn 仅仅使用div作为身体的布局,用css3的各种transform和圆角属性来绘制各部位的 ...

  2. CSS源码之纯css3制作的哆啦a梦图片

    本文章向大家介绍一个纯css3制作的哆啦a梦图像,主要巧妙的使用了css3的border-radius属性,需要的朋友介意参考一下本文章的源码. 效果图: 源码 <!doctype html&g ...

  3. 纯CSS3实现的一些酷炫效果

    之前在网上看到一些用纯CSS3实现的酷炫效果,以为实现起来比较困难,于是想看看具体是怎么实现的. 一.笑脸猫动画 实现效果如下: 这个实现起来确实比较麻烦,很多地方需要花时间,有耐心地调整. 1.先看 ...

  4. 纯css3 加载loading动画特效

    最近项目中要实现当页面还没有加载完给用户提示正在加载的loading,本来是想做个图片提示的,但是图片如果放大电脑的分辨率就会感觉到很虚,体验效果很不好.于是就采用css3+js实现这个loading ...

  5. 纯CSS3实现常见多种相册效果

    本文包含 1.CSS3中2D转换和3D转换的介绍. 2.在相册中的应用实例. CSS3中的转换效果和动画效果十分强大好用,可以实现一些常见的动态效果. 如此一来,CSS3便可以代替许多jQuery的功 ...

  6. 纯CSS3打造七巧板

    原文:纯CSS3打造七巧板 最近项目上要制作一个七巧板,脑子里瞬间闪现,什么...七巧板不是小时候玩的吗... 七巧板的由来 先来个科普吧,是我在查资料过程中看到的,感觉很有意思. 宋朝有个叫黄伯思的 ...

  7. 纯CSS3美化单选按钮radio

    这种纯CSS3美化单选按钮radio的方法适用于以下情况: 1.可兼容IE9以上,需要兼容IE8的要写IE的hack把样式去掉 2.只支持单选按钮radio,因为单选按钮选中样式的圆圈可以用CSS做出 ...

  8. 纯CSS3实现的顶部社会化分享按钮

    今天要分享一款纯CSS3实现的社会化分享按钮,它放置在网页的顶部,你可以选择将它固定在网页顶部,这样对用户分享内容就十分方便.这些社会化分享按钮的图标文件来自google和bootstrap的字体文件 ...

  9. 一款纯css3实现的数字统计游戏

    今天给大家分享一款纯css3实现的数字统计游戏.这款游戏的规则的是将所有的数字相加等于72.这款游戏的数字按钮做得很美观,需要的时候可以借用下.一起看下效果图: 在线预览   源码下载 实现的代码. ...

随机推荐

  1. WPS:为什么无法页眉页脚同前节(同前节是灰的)

    问题:,同前节是灰的 原因:全文只有一节,插入分节符就可以设置同前节了

  2. pyinstaller打包exe文件,运行时一闪而过

    pyinstaller打包exe文件出现命令窗口一闪而过 原因:exe运行过程中出错了,解决这些错误就可以了 解决方法: 通过 cd path >> xxx.exe 在命令行中运行exe文 ...

  3. Python 完美诠释"高内聚"概念的 IO 流 API 体系结构

    1. 前言 第一次接触 Python 语言的 IO API 时,是惊艳的.相比较其它语言所提供的 IO 流 API . 无论是站在使用者的角度还是站在底层设计者的角度,都可以称得上无与伦比. 很多人在 ...

  4. Linux CentOS 7.X-关机、重启命令

    一.命令操作 1.退出命令 退出登陆命令:logout: 2.关闭命令 立即关机:shutdown -h now(root用户)    halt poweroff 延时关机:shutdown -h m ...

  5. mysql破解root口令

    破解root口令 [root@centos8 ~]#vim /etc/my.cnf [mysqld] skip-grant-tables #取消密码验证 skip-networking # mysql ...

  6. jq全选、全不选、反选、单删、批量删除

    <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...

  7. javaScript阻止浏览器F5刷新

    1 <script type="text/javascript"> 2 //禁止用F5键 3 document.onkeydown = function (e) { 4 ...

  8. ssm配置推荐

    1.JDK 1.8 2.Mysql 5.7 3.Maven 3.6.1

  9. TypeScript 初体验

    TypeScript学习 1 安装环境 a 首先安装node.js node.js 用来将ts文件解析成js文件 供浏览器使用: 解析ts文件 tsc filename.ts b. 使用npm (no ...

  10. .NetCore(.NET6)中使用swagger和swagger版本控制

    一..NET6中使用swagger swagger支持 API 自动生成同步的在线文档,下面在.NET6中引入 1.建.NET6应用并建以下控制器 /// <summary> /// 订单 ...