JS原生代码之倒计时抢购

  刚刚用了一点时间把完善了的倒计时抢购功能又做了一遍,这回用的是原声代码,没有引入jquery库,虽然明显感觉原生代码量要多一些,但是写出来个小功能还是很有成就感的。需要注意的就是代码顺序执行的问题,一定要思路清晰。要不然代码顺序写错,有些功能还是实现不了的。

  学到了原声js改变input的disabled的属性值,因为想让倒计时结束的同时,抢购按钮可以被点击。代码为:document.getElementById("buy").disabled = "";或者disabled的值为false也可以。
  下面是我编写的代码,哪里不完善,还请大神指点。

  

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>倒计时抢购</title>
 6 </head>
 7 <body>
 8     <span id="time"></span>
 9     <input type="button" value="开始抢购" id="buy" disabled="true">
10     <script>
11         function Time(){
12             var date = new Date();
13             var nowhour = date.getHours();
14             var nowmin = date.getMinutes();
15             var nowsec = date.getSeconds();
16             var finalhour = 22;
17             var finalmin = 22;
18             var finalsec = 22;
19             var finals = finalhour * 3600 + finalmin * 60 + finalsec;
20             var nows = nowhour * 3600 + nowmin * 60 + nowsec;
21             var showhour = parseInt((finals - nows)/3600);
22             var showmin = parseInt((finals - nows)%3600/60);
23             var showsec = (finals - nows)%60;
24              if(showsec<10){
25                 showsec = "0" + showsec;
26             }
27             if(showmin<10){
28                 showmin = "0" + showmin;
29             }
30             if(showhour<10){
31                 showhour = "0" + showhour;
32             }
33             document.getElementById("time").innerHTML = "距离22点22分22秒还有:" + showhour + ":" + showmin + ":" + showsec;
34             if(showhour == "00" && showmin == "00" && showsec =="00"){
35                 clearInterval(t);
36                 document.getElementById("buy").disabled="";
37             }
38         }
39         Time();
40         var t = setInterval(Time,1000);
41     </script>
42 </body>
43 </html>
时间: 2025-01-15 14:32:49

JS原生代码之倒计时抢购的相关文章

仿jQuery的siblings效果的js原生代码

仿jQuery的siblings效果的js原生代码 <previousSibling> 属性返回选定节点的上一个同级节点(在相同树层级中的前一个节点). <nextSibling> 属性返回被选节点的下一个同级节点(在相同树层级中的下一个节点). 如果不存在这样的节点,则该属性返回 null.//元素节点的节点类型是 1  obj.previousSibling.nodeType ==1; reverse() 方法用于颠倒数组中元素的顺序. push() 方法可向数组的末尾添加一个

JS原生代码实现导航高亮

一 实现原理 根据当前页面滚动条的高度判断当前页面应当与导航栏中哪个导航相关联,并对相应的导航设置高亮样式. 二 代码解析 先简单写一个页面顶端的导航栏:<nav>  <ul>    <li><a class="nav active" href="#nav1">导航1</a></li>    <li><a class="nav" href="#na

js原生代码之图片轮播

话不多说说,直接上代码: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <script src="./public/js/jquery-1.11.2-min.js">&l

基于面向对象的图片轮播(js原生代码)

无论你想走多远,你都需要不断地走下去.前端最精华的便是原生的js,这也是我们前端工程师的技术分层的重要指标,也提现这你的代码能力,开发的水平.废话不多说,进入今天的主要分享----基于面向对象思想的图片轮播.其效果如下所示: 正如图片所示这样我们要实现的效果,这里与我们以往不同的是我们的布局十分简洁.其中html布局如下: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset

js原生代码实现鼠标拖拽(超简单)

首先先来看这一张图 在这种图中,盒子的大小为512px,并且margin-left:-250px margin-top:140px;并通过一些样式让其在中部显示 这些样式都不是重要的,这里加个margin是为了让其出现拖拽的时候出现鼠标偏移,好做演示而已,不然margin:0 auto 就可以实现盒子的居中 首先通过offsetLeft的方法获取到盒子的偏移值,然后在通过clientX,clientY获取到鼠标的坐标,通过当前坐标减去offsetLeft的坐标就可以获取鼠标在div里面的 具体数

js 原生代码找对象的方法

1. id :  document.getElementById('id') 2. 标签 : document.getElementsByTagName('标签') //获得的是一个标签数组 3. Name :document.getElementsByName('name名') // 该方法与 getElementById() 方法相似,但是它查询元素的 name 属性,而不是 id 属性 4. className:document.getElementsByClassName('class'

js原生代码编写一个鼠标在页面移动坐标的检测功能,兼容各大浏览器

function mousePosition(e) {     //IE9以上的浏览器获取     if (e.pageX || e.pageY) {         return {             x: e.pageX,             y: e.pageY         };     }     //IE9以下     //IE中document文档实际并不在(0,0)的位置,在它周围有一个小(通常有2px)边框,document.body.clientLeft和docu

js原生代码给select选择框实现onchange事件

<select name="limit" onchange="selectStages()"> //绑定onchange事件 <option>请选择期限</option> {loop $limit $item} <option value="{$item}">{$item}</option> {/loop} </select> function selectStages(){

使用Node.js原生代码实现静态服务器

const http=require ('http');  //导入模块 const PORT=3000; //设置端口号3000(3000 5000 6000  9000) const HOSTNAME='localhost'; //或"127.0.0.1" http.createServer((req,res)=>{ res.writeHead('Content-type:text/html,charset:utf-8'); res.writeHead( 200, { //设