javascript实现情人节倒计时效果,可以吗?

        最近在学习js,发现js还是挺有意思的,今天学完js基础,想来试一试用js去实现一个倒计时效果,等我们写完成代码后,代码中的时间和文字都是可以修改的,我这里只是用情人节举一个例子,哈哈哈哈,要实现这个效果呢,我们要用到js中的时间和日期相关的知识,不想看文章的可以直接跳到最后拿代码哦,因为我的文章写的也不怎么样,哈哈哈哈哈。。。

        首先,我们的思路是创建好一个日期和两个变量,情人节是8月22日,我们就用8月22日减去我们现在的时间,把它赋值给一个变量,我们在用这个变量去做为倒计时的时间。

 var targetData = new Date("2023/8/22")

  //console.log(targettime-currenData)
   function diffTime(current , target){
       var sub = Math.ceil((target-current)/1000)
       var day = parseInt(sub/(60*60*24))
       var hours = parseInt(sub%(60*60*24)/(60*60))
       var minutes = parseInt(sub%(60*60)/60)
       var seconds = sub%60
      //console.log(hours)
            var obj={
                day:day,
                hours:hours, 
                minutes:minutes, 
                seconds:seconds
            }
            return obj

  }

        上面代码中我们创建了一个函数和一个对象用来获取距离情人节8月22日还有多少天,时,分,秒。函数中的两个参数一个是8月22日,一个是我们现在的时间,函数是我们以后要调用的。接下来我们在用一个延时计时器就可以实现了,把延时计时器的参数设置为1000,这里的1000指的是1000毫秒,也就是1秒,我们就可以让时间1秒1秒的倒计时了。

setInterval(function(){
   var currenData = new Date()
   var res = diffTime(currenData , targetData)
            
   box.innerHTML = `距离情人节还有${res.day}天${res.hours}时
   ${res.minutes}分${res.seconds}秒 `

},1000)

在上面的代码中,我们还要创建一个div盒子,并给这个盒子绑定事件,我们还可以用css设计一下这个盒子。

<div id="box" style="height: 400px; width: 400px;position: absolute; top :0;left:0; right:0; bottom: 0;margin: auto;">

</div>

这样我们创建设计了一个盒子,并且用box.innerHTML的方式给这个盒子绑定了事件,最后再调用对象就可以了,到这里代码就写完啦。

这个是在浏览器中的运行效果:

 全部代码如下:

<body>
    <div id="box" style="height: 400px; width: 400px;position: absolute; top :0;left:0; right:0; bottom: 0;margin: auto;">

</div>
    <script>
        //var currenData = new Date()
        var targetData = new Date("2023/8/22")

        //console.log(targettime-currenData)
        function diffTime(current , target){
            var sub = Math.ceil((target-current)/1000)
            var day = parseInt(sub/(60*60*24))
            var hours = parseInt(sub%(60*60*24)/(60*60))
            var minutes = parseInt(sub%(60*60)/60)
            var seconds = sub%60
            

            var obj={
                day:day,
                hours:hours, 
                minutes:minutes, 
                seconds:seconds
            }
            return obj

        }
        
        setInterval(function(){
            var currenData = new Date()
            var res = diffTime(currenData , targetData)
            
            box.innerHTML = `距离情人节还有${res.day}天${res.hours}时
            ${res.minutes}分${res.seconds}秒 `

        },1000)
    </script>
</body>

其实还是比较简单的,谢谢各位的浏览啦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值