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

效果演示

demo地址

核心思路

采用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看下具体的效果。

项目完整代码Github,有用的给个Star!

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[HTML5抽奖转盘-CSS3超简单版本]http://www.zyiz.net/tech/detail-134420.html

css3抽奖转盘html5,HTML5抽奖转盘-CSS3超简单版本相关推荐

  1. 简单的转盘抽奖html,HTML5抽奖转盘-CSS3超简单版本

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

  2. 【web前端特效源码】使用HTML5+CSS3+JavaScript制作一个影子~~适合初学者~超简单~ |前端开发|IT软件

    b站视频演示效果: [web前端特效源码]使用HTML5+CSS3+JavaScript制作一个影子特效~~适合初学者~超简单~ |前端开发|IT软件 效果图: 完整代码: <!DOCTYPE ...

  3. 微信html抽奖转盘代码,使用CSS3+jquery.js 实现微信抽奖转盘效果

    最近想起了刚接到这个项目时第一时间脑海里迸出的解决方法 "CSS3"! 为什么不能用CSS3来实现呢? 所以我打算用CSS3来实现这个效果.并不需要依赖jquery的动画效果插件, ...

  4. html 5抽奖特效,利用HTML5实现Canvas大转盘抽奖特效

    特效描述:利用HTML5实现 Canvas 大转盘 抽奖特效.利用HTML5实现Canvas大转盘抽奖特效 代码结构 1. 引入JS 2. HTML代码 当前浏览器版本过低,请使用其他浏览器尝试 va ...

  5. 微信大转盘 java_[Java教程]使用CSS3+jquery.js 实现微信抽奖转盘效果

    [Java教程]使用CSS3+jquery.js 实现微信抽奖转盘效果 0 2014-03-19 02:00:24 上次发表了一篇 微信抽奖转盘活动-效果源码分析 最近想起了刚接到这个项目时第一时间脑 ...

  6. html转盘游戏代码,html5 canvas大转盘抽奖提示代码

    特效描述:html5 canvas 大转盘抽奖提示.只用canvas做出的转盘及指针,各奖项和分区颜色可随意设置. 代码结构 1. 引入CSS 2. 引入JS 3. HTML代码 抱歉!浏览器不支持. ...

  7. html5 graphics with svg css3,HTML5 GRAPHICS WITH SVG AND CSS3

    摘要: Want to create exciting HTML5 graphics without spending eternity in JavaScript? You can! This pr ...

  8. HTML5/CSS3系列教程:HTML5 区域(Sectioning)的重要性

    日期:2013-2-4  来源:GBin1.com 不管你以前在web页面布局中如何称呼它们 - "区域"还是"块",我们一直都在布局中将页面分成可视的不同区域 ...

  9. Axure移动端app抽奖转盘+电商圆盘抽奖+商品抽奖+年会抽奖+抽奖动态+Axure通用抽奖转盘组件原型+九宫格方形随机抽奖原型组件+运营活动抽奖转盘

    Axure移动端app抽奖转盘+电商圆盘抽奖+商品抽奖+年会抽奖+抽奖动态+Axure通用抽奖转盘组件原型+九宫格方形随机抽奖原型组件+运营活动抽奖转盘 原型演示及下载地址:https://www.p ...

最新文章

  1. quartz 分布式_6大分布式定时任务对比
  2. 服务器到底长什么样子啊(#゚Д゚)?
  3. mybatis mysql方言_MyBatis 方言支持 - Mysql to 华为高斯数据库(gaussdb)
  4. 说说 XSRF 防范
  5. fmea手册_新失效模式与影晌分析FMEA手册白皮书
  6. 微信官方数据披露:哪些文章更受朋友圈欢迎
  7. [Android]文本框实现搜索和清空效果
  8. rcnn代码实现_轻松学Pytorch实现自定义对象检测器
  9. dev.c drv.c bus.c
  10. 实战申请Let's Encrypt永久免费SSL证书过程教程及常见问题
  11. tensorflow/pytorch 设置GPU的使用
  12. java 加法 溢出_关于数字:Java 8 Unsigned Integer加法和潜在的溢出
  13. Linux脚本的创建
  14. 吉米多维奇数学分析习题集每日一题--习题1379
  15. 如何将应用从Win7迁移到Win10 ?
  16. 英语报纸计算机类,报纸和电脑英语作文
  17. Android WiFi功能实现,知其然必知其所以然! (二)
  18. 服装网站建设策划书-服装网站建设目的需求分析策划书
  19. 使用netwox实现tcp rst 攻击及防御措施
  20. 【REVERSE】REVERSE入门

热门文章

  1. RSA加密、解密、签名、验签介绍
  2. 专题页面该怎么优化才对?
  3. 硬件设计从0到1之基本工具
  4. 经常出现exeplorer.exe错误的问题的总结
  5. 手机+文件共享服务器软件,文件共享服务器软件
  6. 美化win10桌面、使用CoolDock 酷点桌面和 TranslucentTB任务栏透明化软件
  7. Android 风向玫瑰图绘制
  8. 搭建一个游戏平台运营团队都需要什么?
  9. 计算机组成原理第二章:运算方法和运算器
  10. day1-计算机基础