百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>html5教程> HTML5数字时钟之闹钟程序代码
分享文章到:

HTML5数字时钟之闹钟程序代码

发布时间:01/15 来源: 浏览: 关键词:
HTML5数字时钟功能非常的强大了,在本文章就来给大家介绍HTML5数字时钟的闹钟实现程序代码,有兴趣的朋友可进入参考。

上一篇文章中,我们介绍了如何制作一个数字时钟,今天我要在本文中给大家介绍在数字时钟基础上增加设置闹钟响铃功能。本文中使用了HTML5的audio元素来调用响铃音频。

 

HTML5数字时钟之闹钟程序代码

想要在数字时钟时钟上扩展闹钟效果,需要做的有1、要有一个可以编辑设置闹钟响铃时间的界面;2、每秒钟侦听是否到了响铃时间,如果到了响铃时间则弹出提醒并播放响铃音频。
HTML
我们使用上篇文章使用jQuery和CSS3制作数字时钟(jQuery篇)的html结构,增加闹铃元素,增加设置闹铃的弹出界面,增加响铃提醒界面和audio音频元素。
 
  

 代码如下
  <div id="clock" class="light">
        <div class="display">
            <div class="date"></div>
            <div class="alarm"></div>
            <div class="digits"></div>
        </div>
    </div>
    
    <!--设置闹铃时间弹出层-->
    <div class="overlay" id="settime">
        <div id="alarm-dialog">
            <h2>设置闹钟触发时长</h2>
            <label class="hours">
                时
                <input type="number" value="0" min="0" />
            </label>
            <label class="minutes">
                分
                <input type="number" value="0" min="0" />
            </label>
            <label class="seconds">
                秒
                <input type="number" value="0" min="0" />
            </label>
            <div class="button-holder">
                <a id="alarm-set" class="button blue">设置</a>
            </div>
            <a class="close"></a>
        </div>
    </div>
    <!--时间到提醒弹出层-->
    <div class="overlay" id="timeisup">
        <div id="time-is-up">
            <h2>时间到!</h2>
            <div class="button-holder">
                <a class="button blue">关闭</a>
            </div>
        </div>
    </div>
    <!--加载音频-->
    <audio id="ring" preload>
        <source src="audio/ticktac.mp3" type="audio/mpeg" />
        <source src="audio/ticktac.ogg" type="audio/ogg" />
    </audio>

jQuery
首先,我们利用CSS将设置时间和时间到的两个弹出层隐藏,具体请看demo中的css,这里不详述。然后当点击时钟旁边的闹铃图标时,显示弹出层#settime,显示时分秒设置表单,在点击“设置”按钮时,我们要对输入的时间数字进行验证,具体请看下面的代码:
 

 代码如下
$(function(){
    定义初始计数变量
    var alarm_counter = -1;
    //调用设置时间界面
    $('.alarm').click(function(){
        $("#settime").show();
    });
 
    $('a.close').click(function(){
        $("#settime").hide();
    });
    //设置时间
    $("#alarm-set").click(function(){
        var valid = true, after = 0,
            to_seconds = [3600, 60, 1];
        
        $("#settime").find('input').each(function(i){
            if(this.validity && !this.validity.valid){
 
                valid = false;
                this.focus();
 
                return false;
            }
            after += to_seconds[i] * parseInt(parseInt(this.value));
        });
 
        if(!valid){
            alert('请输入有效数字!');
            return;
        }
 
        if(after < 1){
            alert('请输入有效的时间!');
            return;    
        }
        //设置计数变量值
        alarm_counter = after;
        $("#settime").hide();
    });
    
    $("#timeisup").click(function(){
        $("#timeisup").fadeOut();
        $("#settime").find('input').attr('value','0');
    });
});
然后我们要在每秒执行update_time()函数中做判断,判断计数变量alarm_counter的值,如果alarm_counter的值大于0,说明还没到响铃时间,这个时候计数变量减1,闹铃图标样式处于active状态;如果alarm_counter刚好等于0,说明到了响铃时间,这时弹出“时间到”提醒层,并播放音频;如果alarm_counter小于0,则说明响铃处于未工作状态。
 
$(function(){
    ...
    // 让时钟跑起来
    (function update_time(){
        ...
        //闹钟
        var alarm = $(".alarm");
        if(alarm_counter > 0){
            alarm_counter--;
            alarm.addClass('active');
        }
        else if(alarm_counter == 0){
 
            $("#timeisup").fadeIn();
            //在支持html audio的浏览器上播放声音
            try{
                $("#ring")[0].play();
            }
            catch(e){}
            
            alarm_counter--;
            alarm.removeClass('active');
        }
        else{
            alarm.removeClass('active');
        }
        // 每秒钟运行一次
        setTimeout(update_time, 1000);
    })();
});

将以上代码好好整理,就可以看到demo中的效果,你也可以直接下载DEMO中的源码来学习,注意音频audio元素需要支持html5的浏览器才会有效果。

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有3人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板