文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

JS如何实现简单九宫格抽奖

2023-07-02 13:14

关注

这篇文章主要介绍了JS如何实现简单九宫格抽奖的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS如何实现简单九宫格抽奖文章都会有所收获,下面我们一起来看看吧。

HTML文件:

<body><div class="box">    <ul id="jiangPin">        <li><a href="javascript:viod(0);" ><span>奖品 1</span></a></li>        <li><a href="javascript:viod(0);" ><span>奖品 2</span></a></li>        <li><a href="javascript:viod(0);" ><span>奖品 3</span></a></li>        <li><a href="javascript:viod(0);" ><span>奖品 4</span></a></li>        <li><a href="javascript:viod(0);" ><span>奖品 5</span></a></li>        <li><a href="javascript:viod(0);" ><span>奖品 6</span></a></li>        <li><a href="javascript:viod(0);" ><span>奖品 7</span></a></li>        <li><a href="javascript:viod(0);" ><span>奖品 8</span></a></li>    </ul>    <button type="button" class="btn" id="beginBtn">点击开始</button>    <div class="tishi" id="tishi">        <span>恭喜您获得:</span>        <p></p>        <button>确定</button>    </div></div></body>

通过position定位来固定奖盘各个板块的位置,将有奖品的8个块分散在九宫格的边缘,开始按钮在九宫格正中间,将弹出的提示框放于整个奖盘的上层显示,初始将其隐藏。

CSS文件:

.box{    width: 450px;    height: 450px;    background-color: #9a6e3a;    border: 2px solid #990055;    position: relative;    z-index: 10;}.box>ul>li{    position: absolute;    width: 148px;    height: 148px;    border: 1px #222222 solid;    background-color: #ad889d;}.box>ul>li>a{    display: block;    color: #fff;    font-size: 30px;    text-align: center;    line-height: 148px;}.btn{    position: absolute;    top: 150px;    left: 150px;    width: 150px;    height: 150px;    border: 1px #222222 solid;    background-color: #7d53c7;    outline: none;    cursor: pointer;    color: #fff;    font-size: 25px;    transition: all 0.5s;    z-index: 20;}.btn:hover{    background-color: #df04ff;    font-size: 30px;}.btn:active{    background-color: #7d53c7;}.box>ul>li.on{    background-color: #f00;}.box>ul>li:nth-child(1){    top: 0;    left: 0;}.box>ul>li:nth-child(2){    top: 0;    left: 150px;}.box>ul>li:nth-child(3){    top: 0;    left: 300px;}.box>ul>li:nth-child(4){    top: 150px;    left: 300px;}.box>ul>li:nth-child(5){    top: 300px;    left: 300px;}.box>ul>li:nth-child(6){    top: 300px;    left: 150px;}.box>ul>li:nth-child(7){    top: 300px;    left: 0;}.box>ul>li:nth-child(8){    top: 150px;    left: 0;}.tishi{    width: 300px;    height: 146px;    border: 2px #990055 solid;    background: #92EC1F;    border-radius: 20px;    position: absolute;    left: 50%;    top: 50%;    margin-top: -75px;    margin-left: -150px;    z-index: 30;    text-align: center;    font-size: 25px;    font-weight: bold;    display: none;    animation: tishiAni 0.5s both;    transition: all 0.5s;}.tishi>p{    color: red;    font-size: 28px;    margin-top: 20px;}.tishi>button{    width: 60px;    height: 30px;    border:none;    outline: none;    cursor: pointer;    position: absolute;    right: 30px;    bottom: 20px;}@keyframes tishiAni {    0%{        opacity: 0;    }    100%{        opacity: 1;    }}

通过计时器来实现奖品亮块的循环

JavaScript文件:

{    let jiangPinChi = [        "奖品1",        "奖品2",        "奖品3",        "奖品4",        "奖品5",        "奖品6",        "奖品7",        "奖品8",    ];    let index = 0;    let times = Math.round( Math.random()*20 ) +20 ;    let jiangPin = document.getElementById("jiangPin");    let beginBtn = document.getElementById("beginBtn");    let tishi = document.getElementById("tishi");    let cont = tishi.children;    let jPLi = jiangPin.children;    let liBro = function (tag) {        let fat = tag.parentNode;        let tagLi = fat.children;        let othLis = [];        for (let jPLi of tagLi) {            if (jPLi === tag) {                continue;            }            othLis.push(jPLi);        }        return othLis;    };    let showing = function( index ) {        let othLis = liBro( jPLi[index] );        for( let i = 0; i<=othLis.length-1 ; i++ ){            othLis[i].classList.remove("on");        }        // othLis.forEach(function( value,i ){        //     value.classList.remove("on");        // });        jPLi[index].classList.add("on");    };    let changeFun = function( event ){        let myset = setInterval(function(){            index++;            times--;            if( index > jPLi.length-1 ){                index = 0;            }            showing( index );            if( times <= 0 ){                clearInterval(myset);                times = Math.round( Math.random()*20 ) +20;                tishi.style.display = "block";                cont[1].innerHTML = jiangPinChi[index];            }        },100);    };    beginBtn.addEventListener("click",changeFun);    cont[2].addEventListener("click",function( event ){        tishi.style.display = "none";    });}

关于“JS如何实现简单九宫格抽奖”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“JS如何实现简单九宫格抽奖”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯