js转盘抽奖

这个是很简易的转盘,只用了html,css,js

通过css产生一个转盘上的指针,用js动态改变css中的transparent改变指针的角度。再添加一个背景图片类似于奖项的转盘

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>dial</title>
    <link rel="stylesheet" type="text/css" href="dial.css">
    <script type="text/javascript" src="dial.js"></script>
</head>
<body>
<div id="sum">
    <div id="content">
    <div id="tri">
    </div>
    <div id="center"><h1>抽奖</h1></div></div></div>
</body>
</html>

背景图片放在sum中,tri是指针上的三角形,center是指针上的圆,三角形和圆都在content中以便一起运动。

*{
    margin: 0px;
    padding:0px;
}
#sum{
    height: 550px;
    width: 700px;
    background-image: url(dial.jpg);

    position: relative;

}
#content{
    padding: 0px;
    height: 140px;
    width: 140px;
    left: 289px;
    top: 109px;
    margin: 120px auto 0px;
    transform:rotate(0deg);
    position: absolute;
}
#center{
    height: 140px;
    width: 140px;
    border-radius: 140px;
    background-color: #EE4F10;
    color: white;
    line-height: 140px;
    font-weight: bold;
    font-size: 30px;
    text-align: center;
    z-index: 2;
    position:relative;

}
#tri{
    height: 0px;
    width: 0px;
    top: -27px;
    left: 26px;
    border-left: 45px solid transparent;
    border-right:45px solid transparent;
    border-bottom: 45px solid #EE4F10;
    z-index: -1;
    position: absolute;
}
window.onload=function(){
    var data=[320,260,180,620,760,380];
    var content=document.getElementById("content");
    var center=document.getElementById("center");
    center.onclick=play;
    var timer=null;
    var count=0;
    var degv=0;
    var random=0;
    function play(){
    count=0;
    random=Math.floor(Math.random()*6);
    clearInterval(timer);
    timer=setInterval(function(){
    roll();
    },30);
    }
    function roll(){
    degv=count++;
    degv=degv*20;
    if(degv==data[random])
    {
        clearInterval(timer);}
    content.style.webkitTransform="rotate("+degv+"deg)";
    content.style.msTransform="rotate("+degv+"deg)";
    content.style.MozTransform="rotate("+degv+"deg)";
    content.style.OTransform="rotate("+degv+"deg)";
    content.style.transform="rotate("+degv+"deg)";
    }

}

设置一个定时器不断的调用roll方法不断的加指针旋转的角度,直到等于数组中随机选中的角度就会停下来。

时间: 2024-10-07 09:13:09

js转盘抽奖的相关文章

原生js轮盘抽奖实例分析(幸运大转盘抽奖)

效果图: 所需图片素材: 这张图是pointer.png的位置的. turntable-bg.jpg这张是转盘背景图,在背景位置. 这张是turntable.png位置的. 需要这三张图片,如果要实现一下,直接另存这三图片引入进去即可.如果不会请修改成对应的图片名字,放到同一个文件下. 基本原理: 1,通过设置CSS样式的position属性,z-index属性等实现背景图,转盘图与指针图的层叠摆放: 2,通过设置元素style.transform = "rotate(0deg)"实现

原生JS实现简易转盘抽奖

我爱撸码,撸码使我感到快乐. 大家好,我是Counter. 本章带大家来简单的了解下原生JS实现转盘抽奖. 因为主要涉及到JS,在这里HTML和CSS起到的功能就没有那么重要, 因此,没有过多的阐述HTML与CSS,而JS基本每行都有注释,但这里CSS 也是起到了至关重要的一步,那就是控制背景色,以及结果的显示与隐藏,效果先给出,如下: 代码给出: <!DOCTYPE html> <html lang="zh"> <head> <meta ch

js转盘大抽奖 自定义概率

公司项目搞优惠活动,让做一个转盘抽奖的活动,转盘抽奖让他转起来 按照概率停止其实都麻烦,但是概率如果设置在前端就会很大的安全漏洞,所以无论为了安全性还是后期的维护问题都要把概率写到后台配置里然后读取配置.那么问题来了,我们需要把后台的概率结果和前端自己的转盘想对应,我的大致思路是这样的,后台返回概率结果之后,对应的可定有奖品,然后给每个奖品一个不变的标识,根据这个返回的标识我们前端进行相应的转盘指针停留的位置.我们后台鼻尖懒 他不想改接口了 就直接让我去对应配置里的奖品名字,好吧就这样算是搞完了

纯CSS3大转盘抽奖(响应式、可配置)

源于前段时候微信小程序最初火爆公测时段,把以前用 Canvas 实现的大转盘抽奖移植成微信小程序,无奈当时小程序对 Canvas 支持不够完善,只好降低用 CSS3 实现.虽然比不上 Canvas 绘图的绚丽,但也总算完成了一个抽奖的 Demo,详见:https://github.com/givebest/wechat-turntalbe-canvas. 事后想起,CSS3 实现也并不是无有益处,比如简单.快捷.调试方便.渲染想来也是要比 Canvas 要高效的,更重要的一点是支持媒体查询,大转

jquery——九宫格大转盘抽奖

一.用到的图片 二.代码如下,重点是js部分 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jQuery九宫格大转盘抽奖</title> <style> #lottery{width:570px;height:510p

jquery转盘抽奖的研究

先看效果: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>转盘抽奖二</title> <style> *{margin:0;padding: 0;} #lottery{width:570px;height:510px;margin:0px auto;border:4px solid #ba1

大转盘抽奖

这周做了2个大转盘抽奖,一个使用了jQueryRotate.2.2.js插件,兼容到IE6,另外一个利用css3自己尝试写的 1.插件jQueryRotate.2.2.js(兼容基本浏览器,兼容到IE6) 效果查看: 此插件必须事先引入jquery插件,PC端推荐 JS插件代码: // VERSION: 2.2 LAST UPDATE: 13.03.2012 /* * Licensed under the MIT license: http://www.opensource.org/licens

java实现转盘抽奖;

index.jsp页面: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":

原型导航应用于大转盘抽奖客户端显示页面实例

<html><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> <title>大转盘客户端</title> <meta name="keyw