大家好,我是 Steven。

这一期,我们会做一个摇骰子的效果。等等,这个很容易?那就挑战一下,不用 JavaScript,只用 CSS 去制作,我们来看看怎么实现。

素材准备

首先,我们要准备一张图片:

里面是骰子从一到六的面板,然后为了等下转骰子的时候看上去随机一点,这里我将一到六的顺序掉乱一下。

HTML 的部分

打开 CodePen 编辑器,在 HTML 的部分新增一个

,class 是 dice。

CSS 的部分

然后到 CSS 的部分,新增 body 选择器,用 Flexbox 的方法将内容上下左右居中。然后新增 .dice 选择器,设定刚才我们准备好的骰子图片,宽度和高度设定为 366px,由于我们的的骰子图片是横向的,所以 background-position 设定为 0% 100%。

例如我们把 x 的值改成 100%:

就会换成最后一个号码(四)先把他改回 0%。

好了,那我们要如何做到摇骰子的动作呢?新增 @keyframes random 定义一个动画,from 的区块把 background-position 设定为 0% 100%,而 to 的区块把 background-position 设定为 100% 100%。

由于 from 区块里面的定义和 .dice 里面的定义相同,所以在这里可以省略 from 区块,然后设定动画 animation,设定为 .2s,加速度是线性 linear,动画名称是 random,重覆次数是无限 infinite。

现在可以看到骰子在横向方向不停在转,但是这个不像摇骰子的效果,所以关键在这里,animation 可以指定进行的格数有多少,把加速度 linear 换成 steps(5, start)(更正:steps(6, jump-none),这样才不会漏掉一个,谢谢网友的反馈),就可以看到骰子在一个一个的转了。

好了,那下一步就是处理摇骰子结果的逻辑。在不用 JavaScript 的情况下,我们可以通过表单元素 checkbox 实现一开一关的逻辑。

调整一下 HTML 的部分,加入一个 checkbox,id 是 dice。再新增一个 标签,for 等于 checkbox 的 id,dice。再把 .dice 这个

包起来:

这样我们在点击骰子的同时,就可以触发到 checkbox 的点击。

在 CSS 的部分,新增 #dice 选择器,将 display 设定为 none,隐藏这个 checkbox。新增 #dice:checked + label .dice 选择器,即是当 checkbox 是勾选的状态的时候,控制后面的 label 里面的 .dice 的样式。

那我们在这里可以做什么呢?把 animation 暂停就可以了,animation-play-state 设定为 paused。

现在随机结果的效果已经实现了。

再在摇骰子的时候,在骰子的上面加一层装饰。

加入 .dice::before 选择器,将 content 设定为问号,背景颜色设定为 80% 透明度的白色。宽度和高度继承自父元素,设定为 inherit,display 设定为 flex,justify-content 与 align-items 设定为 center。

文字大小设定为大一点,320px,字体 font-family 是祖传的 Helvetica,然后要把背景变成模糊,加入 backdrop-filter,设定为 blur(20px),同时加入 -webkit 的版本,再设定圆角 border-radius 为 60px。

最后,要在显示骰子的结果时,把问号这一层隐藏。加入 #dice:checked + label .dice::before 选择器,将 display 设定为 none。

我们来看看这个案例的完成效果

以上,就是这期要介绍的全部内容。

你的支持是我的动力,请关注 CodingStartup 起码课,我们一起加油!

html css做骰子,纯 CSS 制作摇骰子(随机结果)相关推荐

  1. html css右下角三角形,纯CSS绘制三角形(各种角度)

    CSS/HTML 的 纯CSS绘制三角形(各种角度) 我们的网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果.特别是随着 C ...

  2. [css] 怎样用纯CSS实现禁止鼠标点击事件?

    [css] 怎样用纯CSS实现禁止鼠标点击事件? pointer-events: none; 是css3新出现的属性,意思就是禁止鼠标点击事件,当元素中有这一属性时,链接.点击事件统统失效. 个人简介 ...

  3. html图片倒角,CSS实例:纯CSS打造斜角

    关于CSS打造斜角,先说一下历史,在CSS+DIV流行以前,也就是用表格作为网页框架的时候,人们通过在一个单元格里加入一个斜角图片来来做这种效果的.这种技术现在已经完全过时了,这里不讨论.CSS+DI ...

  4. html 纯css 树形结构,纯css实现树形结构方法教程

    本文主要介绍了纯css实现树形结构的示例代码的相关资料,使用CSS和HTML就可以将一个多级无序列表的节点展现成树状结构,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧,希 ...

  5. css表格排序,纯CSS实现表格排序-利用CSS 变量和Flexbox

    1.引子 今天闲逛知名前端资讯站Front-End Front,发现一个比较有意思的效果,给大家分享下,希望可以对大家有所启发. 纯CSS实现表格排序 心急的同学,先看效果,我放在codepen上. ...

  6. Css实现刘海,纯CSS样式写刘海屏效果

    1. 效果: 2. 代码: 刘海? :root { --bg--color: #ed4014; } body { background: var(--bg--color); } .top_bar_di ...

  7. 查看全文的css,如何通过纯CSS实现“点击展开全文”功能

    看标题大家不难猜到我今天要实现的功能,正如你打开 HTML代码 这是前端开发博客的正文 点击展开全文 将上述代码加入到 single.php 文件里面,按钮一般命名为"点击展开全文" ...

  8. css信号强度显示,纯css实现wifi信号图标及强弱/链接/加密状态

    分享一段自己写的纯css实现的wifi连接的各种状态代码,希望能帮助到一些学习的朋友.默认图标大小为20px,已经通过transform放大,具体的可以见详细代码及预览. 运行代码 纯css实现wif ...

  9. 马自达css滑动按钮,纯css的滑块开关按钮

    之前在项目中使用滑块开关按钮,纯css写的,不考虑兼容低版本浏览器,先说下原理: 使用 checkbox 的 选中 checked 属性改变css 伪类样式, 一定要使用-webkit-appeara ...

最新文章

  1. 相机标定的基本原理与经验分享
  2. Jupyter Notebook 的快捷键
  3. php 删除指定html标签,总结php删除html标签和标签内的内容的方法
  4. 《组织行为学》_09 彩虹理论:人力资本越来越高怎么办?
  5. 大概看了一下《Flash MX 2004 -- 数据库应用开发 - 基于.NET架构》,感觉有点迷惘了!...
  6. 有一只猪400斤,桥承重200斤,怎么过桥?
  7. 如何解决 IDEA 占用大量 CPU 导致的卡顿问题?这顿操作猛如虎
  8. [转载] Python中Numpy基础
  9. python微信刷屏_用python玩转微信
  10. Java基础内容整理(一)
  11. Instead Of 触发器
  12. 浏览器语音附加背景音乐
  13. Excel中的单元格引用
  14. 【CSS 字体 属性(Font)】
  15. 固态硬盘是什么接口_PCI-E接口的固态硬盘和SATA接口的有什么区别?
  16. 卜算子.咏梅 陆游
  17. 扩展数组方法 给数组原形链追加方法(原型链中的this)
  18. 晨哥真有料丨心理学“踢猫效应”,拒绝传递负能量
  19. k8s create pod失败,cannot be handled as a Deployment: [pos 481]: json: expect char '' but got char '1
  20. Linux下c/c++头文件和库文件的查找路径

热门文章

  1. 29 黑马传智健康-echarts-会员数量统计
  2. linux之cal命令
  3. 拍拍贷消息系统原理与应用
  4. html两条下划线重叠,解决文字与下划线重叠的问题
  5. Mono: dot.NET界的大谷翔平,双刀流祝你用Wine一马平川
  6. 设计模式----行为型模式之观察者模式(Observer Pattern)
  7. 对百万年薪聘请熊猫烧香主犯的忠告
  8. 菜鸟已OC(秋招春招找工作经历分享)
  9. 透过日播放量超过6亿的《延禧攻略》,看2018视频网站格局(附代码)
  10. 无线智能插座运用关键技术介绍