注册 登录 充值会员 退出
联系客服 毕业设计 java源码 PHP源码
充值

HTML5 Canvas大转盘抽奖活动页面代码

作者/代码整理:  (源码已亲测,不会安装的可以向QQ1915635791要安装视频教程) 发布日期:2023-03-17
HTML5 Canvas大转盘抽奖活动页面代码
HTML5 Canvas大转盘抽奖活动页面代码是一款很实用支持自定义设置参数的旋转大转盘网页抽奖插件。


js代码

<script src="js/turntable.js"></script>
<script>
	var wheelSurf
	// 初始化装盘数据 正常情况下应该由后台返回
	var initData = {
		"success": true,
		"list": [{
				"id": 100,
				"name": "5000元京东卡",
				"image": "images/1.png",
				"rank":1,
				"percent":3
			},
			{
				"id": 101,
				"name": "1000元京东卡",
				"image": "images/2.png",
				"rank":2,
				"percent":5
			},
			{
				"id": 102,
				"name": "100个比特币",
				"image": "images/3.png",
				"rank":3,
				"percent":2
			},
			{
				"id": 103,
				"name": "50元话费",
				"image": "images/4.png",
				"rank":4,
				"percent":49
			},
			{
				"id": 104,
				"name": "100元话费",
				"image": "images/5.png",
				"rank":5,
				"percent":30
			},
			{
				"id": 105,
				"name": "500个比特币",
				"image": "images/6.png",
				"rank":6,
				"percent":1
			},
			{
				"id": 106,
				"name": "500元京东卡",
				"image": "images/7.png",
				"rank":7,
				"percent":10
			}
		]
	}

	// 计算分配获奖概率(前提所有奖品概率相加100%)
	function getGift(){
		var percent = Math.random()*100
		var totalPercent = 0
		for(var i = 0 ,l = initData.list.length;i<l;i++){
			totalPercent += initData.list[i].percent
			if(percent<=totalPercent){
				return initData.list[i]
			}
		}           
	}

	var list = {}
	
	var angel = 360 / initData.list.length
	// 格式化成插件需要的奖品列表格式
	for (var i = 0, l = initData.list.length; i < l; i++) {
		list[initData.list[i].rank] = {
			id:initData.list[i].id,
			name: initData.list[i].name,
			image: initData.list[i].image
		}
	}
	// 查看奖品列表格式
	
	// 定义转盘奖品
	wheelSurf = $('#myCanvas').WheelSurf({
		list: list, // 奖品 列表,(必填)
		outerCircle: {
			color: '#df1e15' // 外圈颜色(可选)
		},
		innerCircle: {
			color: '#f4ad26' // 里圈颜色(可选)
		},
		dots: ['#fbf0a9', '#fbb936'], // 装饰点颜色(可选)
		disk: ['#ffb933', '#ffe8b5', '#ffb933', '#ffd57c', '#ffb933', '#ffe8b5', '#ffd57c'], //中心奖盘的颜色,默认7彩(可选)
		title: {
			color: '#5c1e08',
			font: '19px Arial'
		} // 奖品标题样式(可选)
	})

	// 初始化转盘
	wheelSurf.init()
	// 抽奖
	var throttle = true;
	$("#start").on('click', function () {

		var winData = getGift() // 正常情况下获奖信息应该由后台返回

		$("#message").html('')
		if(!throttle){
			return false;
		}
		throttle = false;
		var count = 0
		// 计算奖品角度

		for (const key in list) {
			if (list.hasOwnProperty(key)) {                    
				if (winData.id == list[key].id) {
					break;
				}
				count++    
			}
		}
  
		// 转盘抽奖,
		wheelSurf.lottery((count * angel + angel / 2), function () {
			$("#message").html(winData.name)
			throttle = true;
		})
	})
	
</script>

关注公众号,免费赠送安装视频教程、环境和学习视频,后面会不断更新。