html5 抽奖效果,html5+css3实现抽奖活动的效果

看过我博客的知道,前几天我发过一个通过form表单来实现和用户交互效果,上次是通关过table实现用户注册页面,那么今天我们也是通过table的表单效果来画出抽奖的页面,通过css3和javascript的动画效果来实现抽奖的一系列动作。

通过css3+html5把抽奖的页面画出来,再通过javascript函数让它动起来。

e0e8eea1fa00ef72a7cd1a183e5ffee7.png

具体代码奉上:

抽奖

body{ background-image:url(images/bg.png);}

table{color:#FFF; margin:auto; margin-top:40px;}

table tr td{width:110px; height:110px; background-color:#fff;}

div.button{width:150px; height:40px; background-color:rgb(106,38,19); display:inline-block; position:relative; top:80px; border-radius:8px; line-height:40px; font-family:'microsoft yahei'; }

div.button:hover{ cursor:pointer; background-color:#481305;}

div.target{ background-image:url(images/target.png); width:114px; height:114px; position:absolute;top:0px; left:0px;

}

开始抽奖
重    置

刚刚开始学习的朋友可以现实现页面,至于javascript的动作效果之后在慢慢学习。

有兴趣的朋友可以看看《HTML5+CSS3从入门到精通》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个基于HTML、CSS、JS实现带有转盘的抽奖小程序的示例代码。 首先,我们需要在HTML中创建一个canvas元素,作为转盘的容器。 ```html <canvas id="canvas" width="400" height="400"></canvas> ``` 接下来,我们需要先在JS中定义一些转盘相关的变量和常量。 ```javascript var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); // 转盘的中心点坐标 var x = canvas.width / 2; var y = canvas.height / 2; // 转盘半径 var r = x; // 转盘的扇形数量 var sectorCount = 6; // 每个扇形的角度 var sectorAngle = Math.PI * 2 / sectorCount; // 转盘的旋转角度 var rotateAngle = 0; // 奖品名称数组 var prizeTexts = ["奖品1", "奖品2", "奖品3", "奖品4", "奖品5", "奖品6"]; ``` 然后,我们可以编写一个函数来绘制转盘的扇形和文本。 ```javascript function drawSector(startAngle, endAngle, color, text) { // 绘制扇形 ctx.beginPath(); ctx.moveTo(x, y); ctx.arc(x, y, r, startAngle, endAngle); ctx.closePath(); ctx.fillStyle = color; ctx.fill(); // 绘制文本 ctx.save(); ctx.translate(x, y); ctx.rotate(startAngle + (endAngle - startAngle) / 2); ctx.fillStyle = "#fff"; ctx.font = "bold 20px Arial"; ctx.fillText(text, r / 2, 0); ctx.restore(); } ``` 接下来,我们可以使用该函数来绘制转盘的扇形和文本。 ```javascript for (var i = 0; i < sectorCount; i++) { var startAngle = i * sectorAngle - rotateAngle; var endAngle = (i + 1) * sectorAngle - rotateAngle; var color = i % 2 == 0 ? "#f00" : "#0f0"; var text = prizeTexts[i]; drawSector(startAngle, endAngle, color, text); } ``` 现在,我们可以编写一个函数来旋转转盘。 ```javascript function rotate() { // 每次旋转增加的角度 var deltaAngle = Math.random() * 30 + 10; // 旋转角度增加 rotateAngle += deltaAngle; // 旋转到最近的扇形中心 var sectorIndex = Math.floor(rotateAngle / sectorAngle); rotateAngle = sectorIndex * sectorAngle; // 绘制转盘 ctx.clearRect(0, 0, canvas.width, canvas.height); for (var i = 0; i < sectorCount; i++) { var startAngle = i * sectorAngle - rotateAngle; var endAngle = (i + 1) * sectorAngle - rotateAngle; var color = i % 2 == 0 ? "#f00" : "#0f0"; var text = prizeTexts[i]; drawSector(startAngle, endAngle, color, text); } } ``` 最后,我们可以在HTML中添加一个按钮,当用户点击该按钮时,调用rotate()函数来旋转转盘。 ```html <button onclick="rotate()">开始抽奖</button> ``` 完整的代码如下: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>抽奖小程序</title> </head> <body> <canvas id="canvas" width="400" height="400"></canvas> <button onclick="rotate()">开始抽奖</button> <script> var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); // 转盘的中心点坐标 var x = canvas.width / 2; var y = canvas.height / 2; // 转盘半径 var r = x; // 转盘的扇形数量 var sectorCount = 6; // 每个扇形的角度 var sectorAngle = Math.PI * 2 / sectorCount; // 转盘的旋转角度 var rotateAngle = 0; // 奖品名称数组 var prizeTexts = ["奖品1", "奖品2", "奖品3", "奖品4", "奖品5", "奖品6"]; function drawSector(startAngle, endAngle, color, text) { // 绘制扇形 ctx.beginPath(); ctx.moveTo(x, y); ctx.arc(x, y, r, startAngle, endAngle); ctx.closePath(); ctx.fillStyle = color; ctx.fill(); // 绘制文本 ctx.save(); ctx.translate(x, y); ctx.rotate(startAngle + (endAngle - startAngle) / 2); ctx.fillStyle = "#fff"; ctx.font = "bold 20px Arial"; ctx.fillText(text, r / 2, 0); ctx.restore(); } function rotate() { // 每次旋转增加的角度 var deltaAngle = Math.random() * 30 + 10; // 旋转角度增加 rotateAngle += deltaAngle; // 旋转到最近的扇形中心 var sectorIndex = Math.floor(rotateAngle / sectorAngle); rotateAngle = sectorIndex * sectorAngle; // 绘制转盘 ctx.clearRect(0, 0, canvas.width, canvas.height); for (var i = 0; i < sectorCount; i++) { var startAngle = i * sectorAngle - rotateAngle; var endAngle = (i + 1) * sectorAngle - rotateAngle; var color = i % 2 == 0 ? "#f00" : "#0f0"; var text = prizeTexts[i]; drawSector(startAngle, endAngle, color, text); } } </script> </body> </html> ``` 这样,我们就实现了一个简单的带有转盘的抽奖小程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值