Javascript小小抽签器

有时候我们常常会面临一些需要抽签的情况,作为IT人,不必从网上找一些抽签软件、小程序、在手机上下载一些抽签APP!OK,今天我们直接用JS实现一个小小抽签器,也就五分钟的事情,还能让人觉得耳目一新。诶呦?你小子这么喜欢编程(这么能装)?

<!DOCTYPE html>
<html>
<head>
  <title>随机抽签器</title>
</head>
<style>
    h1 {
        margin-top: 50px;
        text-align: center;
        font-size: 100px;
    }
    div {
        text-align: center;
        display: block;
    }
    .tip {
        margin-top: 30px;
        font-size: 20px;
    }
    button {
        font-size: 15px;
        width: 80px;
        height: 30px;
        margin: 30px;
    }
</style>
<body>
    <h1 id="title">抽签</h1>
    <h1 id="text"></h1>
    <div><button id="draw">开始抽签</button>
        <button id="go_on">继续抽签</button>
    </div>
    <div class="tip"><span>使用随机数做的小玩意,可以右键查看页面源代码</span>
    <a href="https://www.bilibili.com/video/BV14J4114768/?spm_id_from=333.337.search-card.all.click&vd_source=3f41245887d99badc559acc07abd5ea2">学习链接</a></div>
  <script>
    startInterval();
    var intervalId; 
    var texts = ["文本1","文本2","......"];
    var currentIndex = 0; 
    var draw = document.getElementById("draw");
    var go_on = document.getElementById("go_on");
    var textElement = document.getElementById("text");

    function startInterval(){
    stopInterval();
    intervalId =setInterval(function() {
        textElement.textContent = texts[currentIndex];
        currentIndex = (currentIndex + 1) % texts.length;
        }, 30); 
    }
    function stopInterval() {
      clearInterval(intervalId);
    }

    function getRandomInt(min, max) {
        min = Math.ceil(min);
        max = Math.floor(max);
        return Math.floor(Math.random() * (max - min + 1)) + min;
    }
    go_on.onclick = function(){
        startInterval();
    }
    draw.onclick = function(){
        var randomNum = getRandomInt(0, 15); 
        console.log(randomNum);
        textElement.textContent = texts[randomNum];
        stopInterval();
    };

  </script>
</body>
</html>

var intervalId;

    var texts = ["文本1","文本2","......",];

    var currentIndex = 0;

    var draw = document.getElementById("draw");

    var go_on = document.getElementById("go_on");

    var textElement = document.getElementById("text");

这一部分就是喜闻乐见的用ID给所有控件注册变量的环节,有了这些变量我们就可以操作控件。

function startInterval(){

    stopInterval();

    intervalId =setInterval(function() {

        textElement.textContent = texts[currentIndex];

        currentIndex = (currentIndex + 1) % texts.length;

        }, 30);

    }

    function stopInterval() {

      clearInterval(intervalId);

    }

这一部分是在startInterval()函数中定义一个计时器,并添加文字闪动功能,

textElement.textContent = texts[currentIndex];是将h1标签里的文字切换成数组中对应currentIndex下标的值, currentIndex = (currentIndex + 1) % texts.length;是在数组越界时重置当前下标的值。

setInterval(function,time)的第二个参数30是,每隔0.03秒进行一次刷新。

function getRandomInt(min, max) {

        min = Math.ceil(min);

        max = Math.floor(max);

        return Math.floor(Math.random() * (max - min + 1)) + min;

    }这个函数的作用是获取一个随机数字。

    go_on.onclick = function(){

        startInterval();

    }这是给继续抽签按钮注册事件,意思是重启计时器。

    draw.onclick = function(){

        var randomNum = getRandomInt(0, 15);

        console.log(randomNum);

        textElement.textContent = texts[randomNum];

        stopInterval();

    };这就是抽签功能实现的函数,动态效果和抽签是分开实现的,动态效果只是为了好看。

我的任务完成了!!!最终效果是这样滴:

可惜CSDN上传视频审核太慢了,大致就是这样啦,想象一下文字在设定的几个文本里来回跳动哦。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值