首页 > 其他分享 >HTML5抽奖转盘-CSS3超简单版本

HTML5抽奖转盘-CSS3超简单版本

时间:2024-03-24 09:44:35浏览次数:26  
标签:CSS3 angleStart 抽奖 角度 HTML5 key angleEnd tips 转盘

 

网上有很多关于抽奖转盘的代码和实例,有使用JavaScript控制动画的,有使用Canvas实现的,它们思路各不相同,本文将介绍一种采用CSS3的方式来实现转盘动画效果,非常简单,只需几行代码即可实现。

 

核心思路

采用CSS3的transition(过渡效果),给定需要旋转的元素设置transform的rotate属性的结束角度,同时添加transition-timing-function来控制旋转的速率包括起始速率和结束速率,代码如下(浏览器前缀可自行添加):

#pointer { transition: transform 6.5s; transition-timing-function: ease-in-out; }

 

这样,给定结束角度后,元素就会旋转,结束角度可以自由控制旋转的圈数,例如结束角度为angelEnd,即圈数m=angelEnd/360 并取整,前几圈转满360无需特殊处理,关键是最后一圈的角度决定了抽奖的结果,代码如下:

let base = 2160; //先转满360×6圈 let result = getRandom(-30,330); // 最后一圈角度,获取-30到330的随机数 let angelEnd = -(base+result)// 结束角度数,负数代表逆时针旋转 $("#pointer").css({"transform":"rotate("+angelEnd+"deg)"});// 设置CSS
 

 

判断抽奖结果

通过监听旋转元素的transitionend获得动画结束的事件,在此回调中,可以判断抽奖结果,同时结合奖品数据及奖品的角度区间来计算,代码如下:

gifts = { "1":{ angleStart : -30, angleEnd : 30, tips : "恭喜您获得理财金2000元~~" }, "2":{ angleStart : 31, angleEnd : 90, tips : "恭喜您获得理财金1000元~~" }, "3":{ angleStart : 91, angleEnd : 150, tips : "很遗憾没有能中奖,再试一次吧~" }, "4":{ angleStart : 151, angleEnd : 210, tips : "恭喜您抽中京东E卡一张~" }, "5":{ angleStart : 211, angleEnd : 270, tips : "恭喜您获得理财金5200元~~" }, "6":{ angleStart : 271, angleEnd : 330, tips : "很遗憾没有能中奖,再试一次吧~" } $("#pointer").on('transitionend',function(){ for (var key in gifts) { // 最后一圈的角度落在哪个奖品区间 if (options.gifts[key].angleStart <= result && result<=options.gifts[key].angleEnd) { // 得到奖品的key值 alert(options.gifts[key].tips); } } })  

 

设定指定奖品

每个抽奖程序都可能预留内部接口,转盘也不例外,通过设置最后一圈的角度数即可提前设置奖品结果,代码如下:

let _key = null; // 内定奖品id

if (_key) { result = getRandom(gifts[_key].angleStart,gifts[_key].angleEnd) }

到此为止,一个简单的转盘抽奖程序就完成了,根据上面的思路,不仅可以旋转指针,也可以旋转圆盘,各位可以体验一下demo看下具体的效果。

 

 

 

标签:CSS3,angleStart,抽奖,角度,HTML5,key,angleEnd,tips,转盘
From: https://www.cnblogs.com/lazb/p/18092092

相关文章

  • 【包邮送书】HTML5+CSS3从入门到精通
    欢迎关注博主Mindtechnist或加入【智能科技社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关注公粽号《机器和智能》回复关键词“python项目实战......
  • html5&css&js代码 031 又一个计算器
    html5&css&js代码031又一个计算器一、代码二、解释又一个计算器页面。一、代码<!doctypehtml><htmllang="zh-cn"><head><metacharset="UTF-8"><title>计算器</title><style>body{......
  • html5文本标签
    标题文本h1、h2、h3、h4、h5、h6其中h1、h2、h3是比较常用的。h3、h4、h5、h6相对来说用的会少一点,除非结构层次比较深才会使用。段落文本p<p>这是一个段落<p/>强调文本strong和em尽量避免使用b代替strong,使用i代替em。它们表示的含义不一样<strong>strong表示文本的......
  • 个人主页HTML5网站源码个性炫酷大气简洁唯美官网上线倒计时引导页HTML5源码
    源码介绍:个性化官宣个人主页,个人主页HTML5网站源码个性炫酷大气简洁唯美官网上线倒计时引导页HTML5源码,超好看的个人官网展示页面。源码下载:个性炫酷大气简洁唯美官网上线倒计时引导页HTML5源码下载界面预览:......
  • HTML5语法总结
    目录一.HTML基本框架二.标题标签三.段落标签四.换行与水平线标签五.文本格式化标签(加粗、倾斜、下划线、删除线)六.图像标签扩展:相对路径,绝对路径与在线网址七.超链接标签八.音频标签九.视频标签十.列表标签十一.表格标签扩展:表格结构标签合并单元格十二.表单标签1.input标签inp......
  • jQuery+CSS3自动轮播焦点图特效源码
    jQuery+CSS3自动轮播焦点图特效源码,源码由HTML+CSS+JS组成,双击html文件可以本地运行效果,也可以上传到服务器里面下载地址jQuery+CSS3自动轮播焦点图特效源码......
  • 华为OD机试Java - 转盘寿司
    转盘寿司前言:本专栏将持续更新互联网大厂机试真题,并进行详细的分析与解答,包含完整的代码实现,希望可以帮助到正在努力的你。关于大厂机试流程、面经、面试指导等,如有任何疑问,欢迎联系我,wechat:steven_moda;email:[email protected];备注:CSDN。题目描述寿司店周年庆,正在举办......
  • CSS3一些总结
    1.标准流2.浮动3.定位1.relative[相对定位]以当前相对定位的元素原有的位置作为参照物移动指定的距离相对定位的元素移动后,原有的位置仍然会被占用2.absolute[绝对定位]绝对定位的元素移动后,原有的位置不会被占用以其他定位的元素[默认值static不算]作为参照物移......
  • 2.1HTML5基本结构
      HTML5实际上不算是一种编程语言,而是一种标记语言。HTML5文件是由一系列成对出现的元素标签嵌套组合而成,这些标签以<元素名>的形式出现,用于标记文本内容的含义。浏览器通过元素标签解析文本内容并将结果显示在网页上,而元素标签本身并不会被浏览器显示出来。HTML5文档的基......
  • html5&css&js代码 018颜色表
    html5&css&js代码018颜色表一、代码二、效果三、解释这段代码展示了一个基本的颜色表,方便参考使用,同时也应用了各种样式应用方式。一、代码<!DOCTYPEhtml><htmllang="zh-cn"><head><title>编程笔记html5&css&js颜色表</title><metacharset="utf......