盘点三个JavaScript案例—实现限时秒杀、定时跳转、改变盒子大小

开发 前端
本文基于JavaScript基础,实现限时秒杀、定时跳转、改变盒子大小的功能。对每一个div层进行详解,让读者更好的理解。

[[393515]]

前言

今天来给大家盘点三个JavaScript案例,分别是实现限时秒杀、定时跳转、改变盒子大小案例,一起来看看吧!

一、实现限时秒杀案例

1.在淘宝网中,商家为了促销经常搞一些活动,例如限时秒杀是常见的一种活动,来增加消费者购买商品。

2.实现限时秒杀案例,具体代码如下所示:

HTML

  1. <div class="box"
  2.             <div style="width:190px">距离5/20号限时秒杀还有</div> 
  3.             <div id="day"></div>  
  4.             <div id="hour"></div>  
  5.             <div id="minute"></div> 
  6.             <div id="second"></div>  
  7.         </div> 

在上面代码中,id为day、hour、minute、second分别表示剩余的天数、小时、分钟、秒数。

CSS

  1. *{ 
  2.                 margin: 0; 
  3.                 padding: 0; 
  4.             } 
  5.             .box { 
  6.                 width: 702px; 
  7.                 height: 378px; 
  8.                 display: flex; 
  9.                 flex-direction: row; 
  10.                 align-items: center; 
  11.                 justify-content: center; 
  12.                 text-align: center; 
  13.                 border: 1px solid #000; 
  14.             } 
  15.  
  16.             .box div { 
  17.                 display: flex; 
  18.                 color: royalblue; 
  19.                 width: 50px; 
  20.                 height: 50px; 
  21.                 border: 1px solid #ccc; 
  22.                 align-items: center; 
  23.                 justify-content: center; 
  24.             } 

在上面代码中,使用弹性布局display:flex,用于盒子模型提供很大的一个灵活性。

flex-direction属性表示控制主轴的方向,row表示水平方向。

justify-content属性表示项目在主轴上的对齐方式,center表示中间。

align-items属性表示项目在交叉轴上对齐方式,center表示中间。

JavaScript

  1. //设置秒杀结束时间 
  2.             var endTime = new Date('2021''4''20'); //指定日期 
  3.             var endSec = endTime.getTime(); //指定日期的毫秒数 
  4.  
  5.             // 声明变量保存剩余的时间 
  6.             var d = h = m = s = 0; 
  7.             // 设置定时器,实现限时秒杀效果 
  8.             var id = setInterval(show, 1000); 
  9.  
  10.             function show() { 
  11.                 var nowtime = new Date(); // 获取当前时间 
  12.                 // 获取时间差,单位秒 
  13.                 var gain = parseInt((endSec - nowtime.getTime()) / 1000); 
  14.                 // 判断秒杀时间是否到期 
  15.                 if (gain > 0) { 
  16.                     // 计算剩余天数 
  17.                     d = parseInt(gain / (60*60*24));  
  18.                     // 计算剩余小时 
  19.                     h = parseInt((gain / (60*60)) % 24);  
  20.                     // 计算剩余分钟 
  21.                     m = parseInt((gain / 60) % 60);  
  22.                     // 计算剩余秒 
  23.                     s = parseInt(gain % 60);  
  24.                 } else { 
  25.                     clearInterval(id); // 清除定时器 
  26.                     d = h = m = s = '00'
  27.                 } 
  28.                 // 将剩余的天、小时、分钟、秒显示在网页中 
  29.                 document.getElementById('day').innerHTML = d + '天'
  30.                 document.getElementById('hour').innerHTML = h + '时'
  31.                 document.getElementById('minute').innerHTML = m + '分'
  32.                 document.getElementById('second').innerHTML = s + '秒'
  33.             } 

在上面代码中,首先是创建秒杀结束时间,利用Date对象的getTime()方法分别获取结束秒杀的时间和当前时间的毫秒数。判断秒杀时间是否到期,如果没到期,计算剩余天数、小时、分钟、秒数。如果到期清除计时器。

使用document.getElementById()方法根据指定的Id对象插入相应的内容。

效果图如下所示:

二、实现定时跳转案例

1.在现实生活中,用户付款成功后,页面停留几秒钟显示信息,之后,返回到首页。小编带大家一起来学习利用定时器实现跳转的效果!

2.实现定时跳转案例,具体代码如下所示:

HTML

  1. <div style="text-align: center;"
  2.             <h1>定时跳转</h1> 
  3.             <a href="https://www.baidu.com/"
  4.                 <span id="sec">5</span>秒后自动跳转页面或点击链接跳转 
  5.             </a> 
  6. </div> 

在上面代码中,实现简单的页面布局,h1标签表示大标题,a标签表示定义超链接,span是行内元素。

JavaScript

  1. function jump(sec,url){ 
  2.                 var sec=document.getElementById("sec").innerHTML=--sec; 
  3.                 if(sec>0){ 
  4.                     setTimeout('jump('+sec+',\''+url+'\') ',1000) 
  5.                 }else
  6.                     location.href=url; 
  7.                 } 
  8. jump(5,"https://www.baidu.com/"

在上面代码中,首先是使用document.getElementById()方法获取id为sec,将初始化的秒数减一使用innerHTML方法插入到id为sec位置。

判断秒数是否大于0,如果大于0,继续计数。如果小于0,直接跳转到指定的页面。

效果图如下所示:

三、实现改变盒子大小案例

1.在Web项目开发中,用户根据不同操作修改显示的内容、CSS样式是最常见的功能。小编带大家一起来学习一个改变盒子大小的案例!

2.实现改变盒子大小的案例,具体代码如下所示:

HTML

  1. <div id="box" style="width:100px;height:100px;background:burlywood;">点我发生变化</div> 

在上面代码中,实现一个宽和高为100px的div,id为box。

JavaScript

  1. //获取指定Id为box对象 
  2.     var box = document.getElementById('box'); 
  3.         //存储点击的次数 
  4.       var num = 0;                      
  5.         // 处理点击事件 
  6.       box.onclick = function() {      
  7.         num++; 
  8.          // 点击次数是奇数,盒子变大 
  9.         if (num % 2) {                  
  10.           this.style.width = '250px'
  11.           this.style.height = '250px'
  12.           this.innerHTML = '大盒子'
  13.         } else { 
  14.           // 点击次数是偶数,盒子变小 
  15.           this.style.width = '100px'
  16.           this.style.height = '100px'
  17.           this.innerHTML = '小盒子'
  18.         } 
  19.       }; 

在上面代码中,首先是使用document.getElementById()方法获取id为box,定义一个num用来存储点击的次数,为box添加点击事件并处理,如果num的值为偶数,盒子变小。如果num的值为奇数,盒子变大。

本文案例参考《JavaScript前端开发案例教程》,黑马程序员编著

四、总结

1.本文基于JavaScript基础,实现限时秒杀、定时跳转、改变盒子大小的功能。对每一个div层进行详解,让读者更好的理解。

2.在JavaScript中,实现限时秒杀、定时跳转案例主要帮助理解定时器的使用,改变盒子大小案例主要是帮助理解如何去修改显示的内容、CSS样式操作。

3.代码没有那么复杂,希望对你有所帮助!

 

责任编辑:姜华 来源: 前端进阶学习交流
相关推荐

2010-03-19 16:11:56

云计算

2010-09-07 13:26:09

cisco 1841

2011-07-10 14:23:58

投影仪用户体验

2012-05-09 09:49:57

移动支付

2011-03-30 13:03:14

数据库营销

2022-03-07 14:24:05

供应链分析大数据数据分析

2020-06-11 09:00:27

SDN网络架构网络

2019-09-18 18:32:29

前端javascriptoop

2019-11-19 15:52:03

人工智能生产力数据隐私

2022-05-19 13:33:53

Github开源项目开源

2009-10-27 09:59:17

VB.NET动态代码

2016-11-28 08:56:15

透析大数据核心

2023-04-26 11:14:11

IT领导者远程工作

2012-02-21 10:30:35

业务灵活性IT架构

2022-10-13 14:15:35

商业智能大数据工具

2009-06-09 10:44:36

JavaScript改

2019-03-06 14:26:31

Javascript面试前端

2022-01-19 17:11:05

JavaScript数据工具

2009-05-19 11:32:10

蜂窝网部署

2017-02-27 20:50:23

点赞
收藏

51CTO技术栈公众号