定时器 setInterval() 和 clearInterval() + 设置一个简单的电子时钟

本文介绍了JavaScript中定时器setInterval()与setTimeout()的基本用法,并通过两个具体例子——淡入淡出效果的动画和简单时钟显示——展示了如何利用定时器实现网页交互功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定时器是一个简单的异步机制

setInterval(): 是一个隔一段时间就执行一次的循环执行的方法。方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。这个方法会一直调用函数,直到clearInterval()被调用或窗口被关闭才停止调用函数。由setIntrval() 返回的 id 值可用作clearInterval() 方法的参数。

setTime():是一个延迟函数,等过了一段时间就执行,仅执行一次。

 

例:这是一个js实现css的动画的过程,(在不使用css的animation 情况下

 <div id="fade-obj" style="width:300px;height:300px;background:#000"></div>
 <button id="fade-btn">淡出</button>
<script>
        var fade=document.querySelector("#fade-obj");//这是一个
        var fadeBtn=document.querySelector("#fade-btn");
        var id;
        var seed=100;
        fadeBtn.onclick=function () {
            if (this.innerHTML=="淡出"){
                this.innerHTML="淡入";
/*因为fadeIn(),fadeOut无返回值,所以只需写函数名,不需要括号。不然,setInterval()只会执行一次;*/
                id=setInterval(fadeIN,10)
            }else {
                this.innerHTML="淡出";
                id=setInterval(fadeOut,10);
            }
        }
        function fadeIN() {
            fadeBtn.disabled=true;
            seed--;
            console.log("fadeIN(): "+seed);
            fade.style.cssText="width:300px;height:300px;background:#000;opacity:"+seed/100+";";
            if (seed==0){
                window.clearInterval(id);//传入setInterval的返回值
                fadeBtn.disabled=false;
            }
        }
        function fadeOut() {
            fadeBtn.disabled=true;
            seed++;
            console.log(seed);
            fade.style.cssText="width:300px;height:300px;background:#000;opacity:"+seed/100+";";
            if (seed==100){
                window.clearInterval(id);//传入setInterval的返回值
                fadeBtn.disabled=false;
            }
</script>

 

12、例2:设置一个简单的时钟(年+月+日  星期  小时:分钟:秒)

<p id="clock"></p>
  <script type="text/javascript">
    setInterval("setClock()",1000);//1秒更新一次
    function setClock() {
          var date=new Date();
          var today=date.getFullYear()+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日";
          var timeNow=date.getHours()+":"+date.getMinutes()+":"+date.getSeconds();
          document.getElementById("clock").innerText=today+"   "+"星期"
              +date.getDay()+"   "+timeNow;
      }
</script>

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值