巧用CSS steps()函数实现随机翻牌效果!

巧用CSS steps()函数实现随机翻牌效果!

翻牌是大家很熟悉的一个互动效果,通常在抽奖活动中出现。那么不借助 JavaScript 是否能够实现随机翻牌效果?翻牌效果肯定是没有问题,CSS 没有随机函数,今天就来分享一个另类的交互实现思路。

CSS 没有内置的“随机”函数,没有像 Javascript 中的 Math.random() 函数,也根本无法生成随机数或随机颜色。

基于上面的问题,需要转换思路,让元素通过复杂的动画实现出随机的效果。实现的原理让纸牌快速地呈现出不同的状态,让这些纸牌在1秒内循环通过所有52个状态,用户点击每张纸牌就暂停动画,并让纸牌翻转。

1.gif

在线预览:https://codepen.io/quintiontang/pen/OJmJRrV

立即学习“前端免费学习笔记(深入)”;

此方案不足的地方就是无法避免三张牌出现相同的花色和牌面

概括

使用动画使元素看起来随机行为的这个思路是不很有趣,有点出乎意料,大部分用户看到这个效果肯定意识不到时纯 CSS 实现的。

现在 CSS 远不止我们现在看到的,它能够带来什么取决于创造性,我一直坚信没有实现不了的交互,只有想不到的交互。

要点

效果主要用到 CSS 中的动画属性 animation,自定义一个动画过程 randomAnim ,点击通过经典的 input checkbox + label 组合,动画控制器 animation-play-state: paused 和 animation-play-state: running;,下面是关键的steps()。

steps()是一个阶跃函数(timing-function),允许将动画或者过渡效果分割成段,而不是从一种状态持续到另一种状态的过渡。这个函数有两个参数:

第一个参数是一个正值,指定我希望动画分割的段数。第二个参数是可选的,可设值:start 和 end,表示在每个间隔的起点或是终点发生阶跃变化,默认是 end。例如 steps(1,start),动画分成1步,动画执行时为左侧端点的部分为开始;steps(1,end),动画分成1步,动画执行时为右侧结尾端点的部分为开始。

2.gif

阶跃函数(timing-function)是用于每两个关键帧之间,而不是整个动画。

更多编程相关知识,请访问:编程入门!!

以上就是巧用CSS steps()函数实现随机翻牌效果!的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2873806.html

(0)
上一篇 2025年3月10日 18:56:00
下一篇 2025年3月6日 23:49:16

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 什么是CSS motion path模块?如何制作运动路径动画?

    什么是css motion path模块?本篇文章和大家一起详细了解下css motion path模块,谈谈它的用法,介绍一下使用该模块如何制作简单和复杂的路径动画。 CSS 中有一个非常有意思的模块 — CSS Motion…

    2025年3月10日 编程技术
    200
  • CSS中什么是:placeholder-shown?如何工作?有什么用?

    css :placeholder-shown伪类是专门用于确定元素是否显示占位符的对象,主要使用它来检查input内容是否为空。 本篇文章带大家了解一下:placeholder-shown伪类,详细介绍一下它是如何工作的。 使用此伪类来设置…

    2025年3月10日 编程技术
    200
  • css3跟css区别是什么

    css3跟css区别是:1、CSS3是CSS技术的升级版本,CSS是用来表现HTML或XML等文件样式的计算机语言;2、CSS3主要包括盒子模型、列表模块等模块,CSS可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。…

    2025年3月10日
    200
  • css3有什么用

    CSS3是CSS技术的升级版本,是朝着模块化发展的版本。以前版本的规范作为一个模块比较庞大,且比较复杂,这一版本把它分解为一些小的模块,加入了更多新的模块。 本教程操作环境:windows7系统、CSS3版、Dell G3电脑。 CSS是层…

    2025年3月10日
    200
  • css3哪个是设置动画播放次数

    在css中,可以使用animation-iteration-count属性设置动画播放次数,只需要给元素设置“animation-iteration-count: infinite”样式即可。 本教程操作环境:windows7系统、CSS3…

    2025年3月10日
    200
  • css3如何实现图片平移

    css3中,可利用transform属性实现图片平移,当值设置为“translate(x,y)”可实现图片在x轴和y轴方向同时平移,值为“translate X(x)”可在x轴方向平移,值为“translateY(y)”可在y轴方向平移。 …

    2025年3月10日
    200
  • css3如何绘制半圆

    css3绘制半圆的方法:1、利用border-radius属性实现,只需要将相邻两个角的值设置为宽/高度的一半,另两个角设置为0即可。2、利用css3的clip属性和rect()函数来实现。 本教程操作环境:windows7系统、CSS3&…

    2025年3月10日
    200
  • css如何实现自适应

    在css中,可以使用calc()函数来实现自适应,只需要在元素中添加“元素:calc(100%-像素大小);”即可。calc()函数是css3新增的一个功能,通过计算来指定元素的长度,因此不用担心添加边距或者边框带来的问题。 本教程操作环境…

    2025年3月10日
    200
  • css3动画不循环怎么办

    css3动画不循环可以使用animation-iteration-count属性定义动画的播放次数。只需要在动画中添加“animation-iteration-count:infinite;”即可实现无限次循环。 本教程操作环境:windo…

    2025年3月10日
    200
  • 手把手教你使用css3给文字添加阴影效果(代码详解)

    之前的文章《CSS篇:如何将页面背景设置渐变效果(代码详解)》中,给大家介绍了怎样使用css设置背景色渐变。下面本篇文章给大家介绍怎样使用css3给文字添加阴影效果呢,我们一起看看怎么做。 用css3给文字添加阴影效果代码示例 nbsp;h…

    2025年3月10日 编程技术
    200

发表回复

登录后才能评论