JavaScript 和 CSS3 做出转盘抽奖效果

首先是HTML代码

	<p id="text">您还剩余3次机会</p>
	<div class="box">
		<img src="./img/lanren.png" >
		<div class="btn btn1"></div>
		<div class="btn2 btn"></div>
	</div>

 然后是CSS代码

        body{      padding: 0;      margin: 0;     }
        .box{        width: 640px;
            height: 640px;
            border-radius: 50%;
            margin: 150px auto;
            position: relative;
        }
        img{
            width: 100%;
            height: 100%;
            transform: rotateZ(0deg);
            transition: all 2s;
        }
        .btn{
            position: absolute;
            width: 190px;
            height: 220px;
            background-image: url("./img/arrow.png");
            background-repeat: no-repeat;
            background-position: -30px 0;
            top: 50%;
            left: 50%;
            margin-left: -95px;
            margin-top: -110px;
        }
    .btn2{
      background-position: -281px 0;
      display: none;
    }
        p{
            width: 100%;
            height: 40px;
            line-height: 40px;
            text-align: center;
            font-size: 20px;
            color: #facebf;
        }

最后加JS代码

 1         //初始化一个角度
 2         var x = 0;
 3         //定义一共能抽奖多少次
 4         var a = 3;
 5         //获取需要的dom元素
 6         var text = document.getElementById("text");
 7         var btn1 = document.getElementsByClassName(‘btn1‘)[0];
 8         var btn2 = document.getElementsByClassName(‘btn2‘)[0];
 9         var img = document.getElementsByTagName(‘img‘)[0];
10         //定义一个随机数  在下面使用
11         function random(a,b){
12             return Math.floor(Math.random()*(b-a))+a;
13         }
14         //点击按钮时  执行事件  首先a-1  然后再随机得到一个角度数字  然后再赋值给img元素  最后再执行一个回调函数 如果直接把回调函数里面的代码将会出现BUG 但是我不知道什么情况    由这个回调函数来判断还有几次抽奖机会
15         btn1.onclick=function(){
16             a-=1;
17             x += parseInt(random(10, 30) * 60);
18       img.style.transform = "rotateZ(" + x + "deg)";
19             qq(a);
20
21         }
22         function qq(x){
23             text.innerHTML=`您还有${x}次机会`;
24             if(x==0){  //如果次数等于0  则不执行任何事件
25                 text.innerHTML=`您还有0次机会`;
26                 btn1.onclick=function(){
27                     return false;
28                 }
29             }
30         }    

原文地址:https://www.cnblogs.com/banyuege/p/9321110.html

时间: 2024-10-14 10:34:23

JavaScript 和 CSS3 做出转盘抽奖效果的相关文章

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

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

Es6语法实现的转盘抽奖效果——可配置转盘的抽奖概率

最近公司要做一个转盘抽奖的效果,但是我们可以控制转盘抽奖的概率,自己用es6简单的实现了下,中间虽然遇到一些问题,但最终都是解决了,下面说一下我的思路. <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <link rel="stylesheet" href="css/index.css">

Javascript 及 CSS3 实现进度条效果

一:css2 属性clip实现网页进度条:  在实现之前,我们先来介绍一下clip属性,因为这个属性在css2.1中很少使用到,所以我们有必要来了解一下: 浏览器支持程度:所有主流浏览器都支持 clip 属性. Clip属性在w3c官网是这样描述的:通过对元素进行裁剪来控制元素的可视区域,默认情况下 元素是不进行任何裁剪的. Clip裁剪的语法如下: .xx {clip:rect(<top>, <right>, <bottom>, <left>)} Rect

借助CCAction实现转盘抽奖

借助cocos2dx自带的CCMoveBY和CCEaseInOut实现目前流行的转盘抽奖效果. 创建一个辅助结点node_projection_,将转盘中被选中的精灵的序号pos与node_projection_的X坐标建立映射关系.当node_projection_执行CCMoveBY时,通过在每帧执行的回调函数roll_update(float dt)去刷新转盘中精灵的状态.而node_projuction_在X轴上的移动的距离决定了转盘最终高亮的位置. 1 void LayerRoll::

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

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

javascript+css3简单的手风琴效果

<!DOCTYPE html> <html> <head>     <meta charset="utf-8">     <title>javascript+css3简单的手风琴效果</title> <style>#imageMenu{width:500px;height:200px;overflow:hidden;}#imageMenu ul *{transition:all linear 0.2s;

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

大转盘抽奖

这周做了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

分享jQuery&amp;CSS3导航标签切换效果

jquery+css3完成的菜单导航特效 引入代码: <link rel="stylesheet" type="text/css" href="css/style.css"/> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="t