公司新年网页抽奖程序 数字抽奖游戏JS特效

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>新年网页抽奖程序_河北电动叉车|石家庄展柜制作</title>
<style type="text/css">
* {margin:0; padding:0;}
ul,li {list-style-type:none;}
body {overflow:hidden;}
#back {width:100%; height:100%; background:#f5f5f5; position:absolute; z-index:1;}
#box {width:360px; height:100px; position:absolute; z-index:3; top:50%; left:50%; margin-top:-50px; margin-left:-180px; text-align:center;}
#box1,#box2,#box3 {width:100px; height:100px; line-height:100px; float:left; background:#321c24; border:10px #321c24 solid; border-radius:50%; position:relative; overflow:hidden;}
#box1 ul,#box2 ul,#box3 ul {color:#fff; font-size:68px; font-family:"Arial Black"; text-align:center; width:100px; height:100px; line-height:100px; position:absolute; top:0; left:0;}
#box1 ul li,#box2 ul li,#box3 ul li {width:100px; height:100px; background:red; border-radius:50%;}
</style>
<script type="text/javascript">
var AIR = {

    $: function (id)
    {
        return typeof id === "string" ? document.getElementById(id) : id;
    },
    $$: function (elem, oParent)
    {
        return (oParent || document).getElementsByTagName(elem);
    },
    addEvent: function (oElement, sEvent, fnHandler)
    {
        oElement.addEventListener ? oElement.addEventListener(sEvent, fnHandler, false) : oElement.attachEvent("on" + sEvent, fnHandler)
    },
    removeEvent: function (oElement, sEvent, fnHandler)
    {
        oElement.removeEventListener ? oElement.removeEventListener(sEvent, fnHandler, false) : oElement.detachEvent("on" + sEvent, fnHandler)
    },
    getElementClient: function (){
        var arr = [];
        if (document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth){
            arr.push(document.documentElement.clientWidth);
            arr.push(document.documentElement.clientHeight);
            return arr;
        }
    },
    getStyle: function (obj, attr)
    {
        return parseFloat(obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj, null)[attr])
    },
    startMove: function (obj, pos, onEnd)
    {
        clearInterval(obj.timer);
        var _this = this;
        obj.timer = setInterval(function ()
        {
            _this.doMove(obj, pos, onEnd)
        }, 30)
    },
    doMove: function (obj, pos, onEnd)
    {
        var iCurL = this.getStyle(obj, "left");
        var iCurT = this.getStyle(obj, "top");
        var iSpeedL = (pos.left - iCurL) / 5;
        var iSpeedT = (pos.top - iCurT) / 5;
        iSpeedL = iSpeedL > 0 ? Math.ceil(iSpeedL) : Math.floor(iSpeedL);
        iSpeedT = iSpeedT > 0 ? Math.ceil(iSpeedT) : Math.floor(iSpeedT);
        if (pos.left == iCurL && pos.top == iCurT)
        {
            clearInterval(obj.timer);
            onEnd && onEnd()
        }
        else
        {
            obj.style.left = iCurL + iSpeedL + "px";
            obj.style.top = iCurT + iSpeedT + "px";
        }
    }

}
function Draw (obj, num)
{
    this.obj = obj;
    this.num = num;
    this.data = [];
    this.result = [];
    this.show = 0;
    this.btn = true;
    this.timer = true;
    this.h = 0;
    this.uh = 0;
    this.initialize();
}
Draw.prototype = {
    initialize: function ()
    {
        this.createArr ();
        this.createElement ();
        this.closeEvent ();
        this.startDraw ();
    },
    createElement: function ()
    {
        for(var j=0; j<this.obj.length; j++){
            var ul = document.createElement("ul");
            for(var i=0; i<10; i++){
                var li = document.createElement("li");
                li.innerHTML = i;
                ul.appendChild(li)
            }
            this.obj[j].appendChild(ul);
            this.obj[j].btn = true;
            AIR.$$("ul",this.obj[j])[0].innerHTML += AIR.$$("ul",this.obj[j])[0].innerHTML;
        }
        var UL = AIR.$$("ul",this.obj[0])[0];
        this.h = AIR.getStyle(AIR.$$("li",UL)[0],"height");
        this.uh = AIR.$$("li",UL).length * this.h
    },
    randomSort: function (a, b) {
        return Math.random()>.5 ? -1 : 1;
    },
    createArr: function ()
    {
        for(var i=0; i<this.num+1; i++){
            this.data.push(i);
        }
        this.data.sort(this.randomSort);
    },
    closeEvent: function ()
    {
        document.onmousedown = document.onmousemove = document.oncontextmenu = function ()
        {
            return false;
        }
    },
    startDraw: function ()
    {
        var _this = this;
        document.onkeyup = function ( ev )
        {
            var ev = ev || window.event;
            if(ev.keyCode == 13 || ev.keyCode == 32){
                if(_this.btn && _this.timer){
                    if(_this.obj[_this.obj.length-1].btn){
                        _this.Play ();
                        _this.btn = !_this.btn;
                        _this.timer = !_this.timer;
                    }
                }else{
                    if(_this.obj[_this.obj.length-1].btn){
                        _this.Stop ();
                        _this.btn = !_this.btn;
                        _this.timer = !_this.timer;
                    }
                }
                return false;
            }else{
                return false;
            }
        }
    },
    Play: function ()
    {
        if(this.timer && this.btn){
            var t = 0;
            for(var i=0; i<this.obj.length; i++){
                this.obj[i].btn = false;
                this.playTimer (this.obj[i],t);
                t += 1500;
            }
        }else{
            return false;
        }
    },
    playTimer: function (obj,t)
    {
        var _this = this;
        setTimeout(function(){
            _this.Move (obj);
        },t)
    },
    Del: function (a)
    {
        for(var i=0; i<this.data.length; i++){
            if(a == this.data[i]){
                this.data.splice(i,1);
            }
        }
    },
    Stop: function ()
    {
        if(!this.timer && !this.btn){
            var n = this.num + 1;
            var r = this.data[Math.floor(Math.random() * (0-n) + n)];
            this.show = r;
            this.Del (r);
            r = r.toString().split("");
            var c = this.obj.length - r.length;
            if(r.length < this.obj.length){
                for(var i=0; i<c; i++){
                    r.unshift(0)
                }
            }
            this.result = r;
            //document.title = r+" : "+this.data;
            var t = 0;
            for(var i=0; i<this.obj.length; i++){
                this.obj[i].btn = false;
                this.obj[i].index = i;
                this.obj[i].num = this.result[this.obj[i].index];
                this.stopTimer (this.obj[i],t);
                t += 1500;
            }
        }
    },
    stopTimer: function (obj,t)
    {
        var _this = this;
        setTimeout(function(){
            _this.showResult (obj);
        },t)
    },
    showResult: function (obj)
    {
        var _this = this;
        this.timer = true;
        this.btn = true;
        obj.btn = false;
        obj.vh = -obj.num * this.h;
        obj.timeOut = setInterval(function(){
            obj.speed -= 1;
            if(obj.speed == 1){
                clearInterval(obj.timeOut);
                clearInterval(obj.timer);
                obj.timer = setInterval(function(){
                    if(obj.ul.offsetTop >= obj.vh){
                        clearInterval(obj.timer);
                        AIR.startMove(obj.ul,{left:0,top:obj.vh},function(){
                            obj.btn = true;
                            var set = true;
                            for(var i=0; i<_this.obj.length; i++){
                                if(!_this.obj[i].btn){
                                    set = false;
                                }
                            }
                            if(set){
                                _this.Open(_this.show)
                            }
                        });
                    }
                    obj.ul.style.top = obj.ul.offsetTop + obj.speed +"px";
                },30);
            }
       },100);     

    },
    Open: function (num)
    {
        document.title += " "+ num;
    },
    Move: function (obj)
    {
        var _this = this;
        var obj = obj;
        obj.btn = false;
        obj.timer = null;
        obj.speed = 1;
        obj.ul = AIR.$$("ul",obj)[0];
        obj.ul.style.height = this.uh +"px";
        obj.timer = setInterval(function(){
            if(obj.ul.offsetTop > 0){
                obj.ul.style.top = -(_this.uh/2) +"px";
            }
            obj.ul.style.top = obj.ul.offsetTop + obj.speed +"px";
        },30);
        obj.timeOut = setInterval(function(){
            obj.speed += 1;
            if(obj.speed == 30){
                clearInterval(obj.timeOut);
                obj.btn = true;
            }
        },300)
    }

}
var initialize = function ()
{
    new Draw ([AIR.$("box1"),AIR.$("box2"),AIR.$("box3")],100);
    reSize ();
}
var reSize = function ()
{
    var v = AIR.getElementClient();
    AIR.$$("img",AIR.$("back"))[0].width = v[0];
    AIR.$$("img",AIR.$("back"))[0].height = v[1];
}
AIR.addEvent(window,"load",initialize);
AIR.addEvent(window,"resize",reSize);
</script>
</head>
<body>
<div id="box">
    <div id="box1"></div>
    <div id="box2"></div>
    <div id="box3"></div>
    <div style="clear:both"></div>
</div>
<div id="back">
    <img src="http://js.alixixi.com/UploadPic/2015-3/20153291274950386.jpg" />
</div>
<div id="showback">100</div>
</body>
</html>
时间: 2024-10-29 00:50:47

公司新年网页抽奖程序 数字抽奖游戏JS特效的相关文章

【转】Java数字抽奖游戏核心代码

1. [代码][Java]代码    package com.luiszhang.test; import java.util.Arrays; /** * NumberLotteryGame * 一个简单的数字彩票游戏类 * @author LuisZhang * 参考了core java 8th中的例3-7的设计思想 */public class NumberLotteryGame {    private int gamesNumber;    // 生成游戏的数量,为以后多线程扩展做考虑 

如何用 Python 写一个简易的抽奖程序

不知道有多少人是被这个头图骗进来的:) 事情的起因是这样的,上周有同学问小编,看着小编的示例代码敲代码,感觉自己也会写了,如果不看的话,七七八八可能也写的出来,但是一旦自己独立写一段程序,感觉到无从下手. 其实这个很正常,刚开始学习写代码,都是跟着别人的套路往下写,看的套路少,很难形成自己的套路,这就和做数学题是一样的,做一道题就想会所有的题目,这个可能性微乎其微,都是通过大量的练习来摸索到自己的套路. 正好快过年了,各个公司都会搞一些抽奖活动,小编今天就来聊一下,如果要写一个简单的抽奖程序,小

java模拟一个抽奖程序

今天用一个程序模拟一个从1-32之间,随机抽取7组号码的抽奖程序 * 需要使用Java的图形界面知识 * 窗口  JFrame * 面板  JPanel * 显示文本信息的标签  JLabel * 文本框 JTextField * 按钮  JButton 还涉及到线程Thread 先看效果图: 但是这里留一个问题?就是去除重复数字(可以自己先实现,后期我会上传的) 下面看看代码,代码中有注释,不懂留言: package thread.test1; import java.awt.BorderLa

JavaScript简单抽奖程序的实现及代码

JavaScript简单抽奖程序的实现及代码 1.需求说明 某公司年终抽奖,需要有如下功能 1)可以根据实际情况设置到场人数的最大值 2) 点击"开始",大屏幕滚动,点击"停止",获奖者的编号出现在大屏幕上 3)在界面里显示全部奖项获奖人编号 4)不重复获奖 5)不会因为输入错误而导致抽奖结果异常. 2.代码呈上 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">

年会抽奖程序的一些总结

起源 2019年年会的到来,当然免不了激动人心的抽奖环节啦,那直接延用上一年的抽奖程序吧,然而Boss希望今年的抽奖程序能够能让所有人都参与进来,一起来抢有限奖品,先到先得,而不是站在那里盯着屏幕. OK,程序内容大概是这样子,每个人在手机浏览器打开抽奖程序界面,系统会随机给个数字,谁戳屏幕上的圆形最快最准,就能参与抽奖活动,有多少奖品就有多少场battle(仅限手机浏览器打开 & 每人仅限获得一个奖品) 重要的是,年会之前得把程序公布出来,让其他同事想办法作弊,硬件作弊和软件作弊都允许,我们主

jQuery实现圆盘活动抽奖程序效果

<script type="text/javascript" src="jquery-1.7.2.min.js"></script> <script type="text/javascript" src="jQueryRotate.2.2.js"></script> <script type="text/javascript" src="jqu

十分简单的年会抽奖程序

年会那个抽奖程序崩溃实在令人印象太深刻了,所以自己弄了一个简单版本的... data=[] #从数据库或者文件获取员工抽奖id,放到data iNum= raw_input("please input the numbers:\n")#抽几个人 # method= raw_input("please input the method:\n")#做所谓奇偶数抽奖,没意义 allwindata=[] while iNum: windata=[] for i in ran

需求:有一个猜数字小游戏,请写一个程序实现在测试类中只能使用5次,超过5次提示:游戏试玩结束,请付费。

package cn.idcast4; import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.Reader;import java.io.Writer;import java.util.Properties; /* * 需求:有一个猜数字小游戏,请写一个程序实现在测试类中只能使用5次, *

Java 初学 第一弹--编译并运行书上的简单程序(猜数字小游戏)

(博主原创) 首先说明一下,博主是大一上学期结束寒假时自己看的Java,然后我看的是Head First Java的中文版,因为大一学了c,所以里面的一些基本思想还是了解的,在看这本书时就浏览了一下(就是那种光看没有自己动手去敲代码的),然后看到书上的一个猜数字小游戏,就想手动敲一下,熟悉熟悉Java的语法,但是真正去做时,发现比看起来要困难一些. 首先是Java在建立一个源码文件之前要先建一个package,然后我用的Eclipse写的Java(感觉和pycharm风格差不多),再新建一个文件