怕自己注意力不集中?来做一个属于自己的番茄闹钟把

news/2024/7/10 23:43:31 标签: html, ecmascript, http, jquery, ajax
htmledit_views">

首先

虽然这第一步不需要什么技术,但是也是非常重要的,那就是找一个好看的背景!你想啊,如果你做的闹钟外观看起来不怎么样或者说是你不喜欢的样式,那你会去用吗?(反正如果是我,我可能做完就放在那不会再打开了)所以,先不要想要去怎么构思代码,找背景才是关键!(我是找了好久,勉强找了一个能看的,简约且又像闹钟)给你们瞅瞅(emmm...不要吐槽!不要吐槽!) 

 https://img-blog.csdnimg.cn/0a6043a0ad0f40a2853184d6f06abadc.png" width="576" />

图片找好了那就要开始布局了,想想你的倒计时要放在哪里,以及时长的选择还有一些功能键的位置,因为我选的图片正好是居中放置的,所以其他的功能键也居中放看起来会正常点。 

进而 

页面布局好了,那就要开始构思代码了。我们先把重点部分写好 ,再写优化的功能部分。这里我们要实现的是倒计时功能,所以重点就是倒计时部分。既然跟时间有关,那自然而然就会想到Date() 对象,对!一开始我也是这么想的,但当你深入去构思代码的时候,发现其实根本不需要使用Date()!那不就简单多了,只需要把用户输入的时长,转化成毫秒或秒,再使用定时器,隔一秒就让转化后的时间减1(如果是毫秒就要减 1000),并每次减完再转化成时分秒显示到页面上。

                //转化为小时
                var h = parseInt((time / 1000)/60/60%12);
                //如果转化后的值小于10,就在前面添加0
                h = h >= 10 ? h : '0' + h;
                //转化为分钟
                var m = parseInt((time / 1000)/60%60);
                m = m >= 10 ? m : '0' + m;
                //转化为秒
                var s = parseInt((time / 1000)%60); 
                s = s >= 10 ? s : '0' + s;

 其次

 主要功能写好了,那就开始写必须要有的时常选择模块,这里我用了 select 标签做的,这时有人就问,用Input表单获取用户自己输入的时间不是体验感更好吗,但是你们想想如果用了Input,万一有人故意输入一些很长很长的并且带小数点的值,很明显这样去计算就没有什么意义,而且说不准还会导致程序的崩溃。所以与其这样,还不如设置几个比较常用的且合理的固定的值,让用户去选择,这里你们可以根据自己的喜好去设置。

html">        <select id="choice">
            <option>6秒</option>
            <option >10分钟</option>
            <option >30分钟</option>
            <option>60分钟</option>
            <option>120分钟</option>
        </select>  

 补充一个知识点:获取select中当前选中的值 

 k = parseInt($('#choice option:selected').text());

 最后

最后就是补充几个功能键,这里我做了开始、暂停、重置这三个功能,开始键里要做的就是开启定时器,和当用户按了暂停再继续在当前时间上倒计时,暂停按钮要做的就是清除定时器,重置按钮就是用来让页面初始化的,因为三个按钮功能都不一样,所以我就分开写了。

 $('.btn button').eq(0).on('click',function(){
            $('.hidden').hide();
            if(flag) {
                    Datetime(k);
                  //flag用来判断前一个状态是点完暂停还是重新开始的
                    flag = false;
                } else {
                   Obj(p);  
                }
        })

        $('.btn button').eq(1).on('click',function(){
            clearInterval(timer);
        })

        $('.btn button').eq(2).on('click',function(){
                //全部初始化
                clearInterval(timer);
                $('ul li').eq(0).html('00');
                $('ul li').eq(2).html('00');
                $('ul li').eq(4).html('00');
                flag = true;
                p = 0;
        })

补充 

为了让这个闹钟看起来没那么压抑,我还做了当时间到了以后,会提示说该休息了~伴着愉快的心情

https://img-blog.csdnimg.cn/2daaab19423943b39d6434537d591af9.gif" />  

完整代码 

html"><!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="jQuery.min.js"></script>
    <style>
        body {
            background-color: antiquewhite;
        }
        * {
            margin: 0;
            padding: 0;
            list-style: none;
            box-sizing: border-box;
        }
        .box {
            position: relative;
            width: 500px;
            height: 400px;
            margin: 100px auto;
        }
        .box img {
            width: 100%;
            height: 100%;
        }
        .box ul {
            position: absolute;
            top: 173px;
            left: 157px;
            display: flex;
        }
        ul li {
            width: 30px;
            height: 50px;
            margin: 0 2px;
            font-size: 30px;
            font-weight: 700;
            text-align: center;
            line-height: 50px;
            color:#ec6d31;
        }
        select {
            position: absolute;
            bottom: -46px;
            left: 50px;
            padding: 6px 18px;
            outline: none;
            background-color: rgb(246, 255, 127);
        }
        .btn {
            position: absolute;
            bottom: -46px;
            left: 205px;
        }
        .btn button {
            width: 60px;
            height: 30px;
            cursor: pointer;
            background-color: aquamarine;
            border: none;
            border-radius: 10px;
            font-weight: 700;
        }
        .btn button:hover {
            background-color:cornflowerblue;
        }
        .hidden {
            display: none;
            position: absolute;
            top: 100px;
            left: -381px;
        }
        .hidden img {
            width: 200px;
            height: 170px;
        }
        .hidden p {
            font-weight: 700;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="hidden">
            <img src="./images/小黄人.gif" alt="">
            <p>休息啦!可以耍去了!</p>
        </div>
        <img src="./images/时钟背景2.jpg" alt="">
        <ul>
            <li>00</li>
            <li>:</li>
            <li>00</li>
            <li>:</li>
            <li>00</li>
        </ul>
        <select id="choice">
            <option>6秒</option>
            <option >10分钟</option>
            <option >30分钟</option>
            <option>60分钟</option>
            <option>120分钟</option>
        </select>  
        <div class="btn">
            <button>开始</button>
            <button>暂停</button>
            <button>重置</button>
        </div>
    </div>

    <script>
      $(function(){
          var k = 0.1;
          var timer = null;
          var flag = true;
          var p = 0;
        //   Datetime(10);
        $('.btn button').eq(0).on('click',function(){
            $('.hidden').hide();
            if(flag) {
                    Datetime(k);
                    flag = false;
                } else {
                   Obj(p);  
                }
        })

        $('.btn button').eq(1).on('click',function(){
            clearInterval(timer);
        })

        $('.btn button').eq(2).on('click',function(){
                clearInterval(timer);
                $('ul li').eq(0).html('00');
                $('ul li').eq(2).html('00');
                $('ul li').eq(4).html('00');
                flag = true;
                p = 0;
        })

        $('#choice').on('change',function(){
             k = parseInt($('#choice option:selected').text());
             clearInterval(timer); 
             flag = true;
        })
        

        function Obj(time) {
               timer = setInterval(function(){
                var h = parseInt((time / 1000)/60/60%12);
                h = h >= 10 ? h : '0' + h;
                var m = parseInt((time / 1000)/60%60);
                m = m >= 10 ? m : '0' + m;
                var s = parseInt((time / 1000)%60); 
                s = s >= 10 ? s : '0' + s;
                $('ul li').eq(0).html(h);
                $('ul li').eq(2).html(m);
                $('ul li').eq(4).html(s);
                time-= 1000;
                p = time;
                if(time < 0) {
                    clearInterval(timer);
                    $('.hidden').show();
                    flag = true;
                }
            },1000)    
        }

        function Datetime(time){
            time = time * 60 * 1000;
            Obj(time);
            
        }
      })
    </script>
</body>
</html>

 https://img-blog.csdnimg.cn/d16ff8c038f447d9add662b2e90ebccc.jpg" width="240" />


http://www.niftyadmin.cn/n/1866636.html

相关文章

福师计算机在线作业二在公式中出现被零除,第九章 201309福师计算机应用基础作业二.doc...

301309福师《计算机应用基础》在线作业二1.??在Excel 2000中&#xff0c;当公式中出现被零除的现象时&#xff0c;产生的错误值是( )A. #N/A!B. #DIV/0!C. #NUMD. #VALUE!??????满分&#xff1a;2??分2.??硬盘与软盘相比&#xff0c;硬盘具有( )的特点A. 价格便宜B…

微型计算机项目报告,工业用微型计算机实验报告

((1)按图3接线。用扁平线(8头)分别插在8255的A口和发光二极管的插针上。用扁平线分别插在8255的B口和拨动开关的插针上。8255的PC0插针接8259的IRQ7插针上&#xff0c; 8255的PC1插针接KK1-插针上。(2)输入源程序&#xff0c;汇编、连接后装入系统。●参考程序2STACK SEGMENT S…

npm是什么?yarn又是什么?

一、什么是npm npm(全称Node Package Manager,即 node 包管理器) 是Node.js默认的、以JavaScript编写的软件包管理系统 npm来分享和使用代码已经成了前端的标配 官网&#xff1a; npm 拥有超过一百万个软件包&#xff0c;是世界上最大的软件注册表 安装完毕node后&#xff0c;会…

教你版本控制软件git的使用

目录 一、版本控制软件的重要性 二、Git 基础概念 Git 特性的具体分析&#x1f447; Git 中的三个区域 Git 中的三种状态 ​ Git 的工作流程 三、安装并配置 Git 四、Git 的基本操作一 五、Git 的基本操作二 一、版本控制软件的重要性 在分享git之前我先来说…

模板字符串怎么换行_Python 学习 第二篇:数据类型(字符串)

字符串是一个字符的、有序的、不可变的序列&#xff0c;用于存储基于文本的信息。字符串所包含的字符存在从左至右的位置顺序&#xff0c;不可以在原处&#xff08;in-place&#xff09;修改。Python没有C语言的字符和字符串之分&#xff0c;只有字符串。从严格意义上说&#x…

璇女神html5,璇言璇语(20)之南方人物周刊5

A这种心态是不是来自你童年或者学生时代的一些事情呢?B上学的时候有过一些小小的波折。但是也因为那个时候我比较高调做人,可能你一个小小的细节,就会让大家把你设成了针对的对象。当时是挺难过的,但是我觉得现在我能够以特别好的心态去应对所有外界对我的质疑也好、黑也好,也…

计算机网络第三章有什么难点,迷室3第三章难点解决及攻略

迷室3金字塔底下交换宝石那里怎么过&#xff1f;迷室3第三章里面有很多的难点&#xff0c;这些难点一般都是很多玩家都会遇到的问题&#xff0c;大家可以参考一些这些难点去过关&#xff0c;下面是小编整理的迷室3金字塔底下交换宝石那里怎么过攻略&#xff0c;一起去看看吧&am…

订单生产计划表范本_做好生产计划,轻松解决车间生产管理混乱!(上)

在工厂内&#xff0c;我们常见的一些生产现象&#xff1a;1、前后工序的半成品或材料不衔接&#xff0c;我要的你不来&#xff0c;我不要的却拼命过来。2、工厂内&#xff0c;各生产部门&#xff0c;半成品堆积像仓库&#xff0c;生产不能像行云流水一样顺畅的流下去。3、生产计…