扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
$(function(){
成都创新互联提供成都做网站、成都网站建设、成都外贸网站建设、网页设计,成都品牌网站建设,广告投放平台等致力于企业网站建设与公司网站制作,10年的网站开发和建站经验,助力企业信息化建设,成功案例突破上千,是您实现网站建设的好选择.
$('#e3').hover(function(){
//setTimeout(function(){$('#e3').animate({"right":"0"},355)}, 400);
$(this).animate({"right":"0"},355);
},function(){
// $(this).animate({"right":"-85px"},355);
setTimeout(function(){$('#e3').animate({"right":"-85px"},355)}, 400);
});
$('#e4').hover(function(){
$(this).animate({"right":"0"},355);
},function(){
$(this).animate({"right":"-85px"},355);
});
});
var index = 0;
var base = 1.354;
setInterval(function(){
var text = base + 0.001 * (index++ % 5);
console.log(text);
},1000);
js的两种定时器分别是 setInterval 和 setTimeout 。他们的区别在于计时的方式不同,前者为循环计时,后者为定时计时。下面我们来分别介绍一下。
setInterval
window.setInterval([function],[interval]) 设置一个定时器,并且设定了一个等待的时间[interval],每隔一段时间,就会执行一次对应的方法function,直到计时器被清除为止。计时器的清除方法为 window.clearInterval(计时器名称)
例一:
本案例需要引入jQuery 否则无效
setTimeout
window.setTimeout([function],[interval]) 设置定时器及等待时间,但计时器到达时间后执行一次就会停止(计时器还在,不过没用了)计时器的清除方法是 window.clearTimeout(计时器名称)
例二:
本案例需要引入jQuery 否则无效
这里要说明一下,定时器清除后其返回值仍然存在,之后定时器的返回值在此返回值的基础上增加,类似医院排号,1号看完叫的是2号,不是从1号重新开始。
更多前端内容请 点击关注
首先获取当前时间与目标时间的时间差,然后通过定时器更新这个时间差,就实现了倒计时效果。实现上述过程需要以下两个函数:
getTime() // 返回距1970年1月1日之间的毫秒数,这样将时间差(毫秒数)÷3600÷24即为天数,时分秒类似
setTimeout(code,millisec); // 在指定的毫秒数后调用函数
实例演示如下
创建Html元素
div class="box"
span距离2015年国庆节还剩:/spanbr
div class="content"
input type="text" id="time_d"天input type="text" id="time_h"时input type="text" id="time_m"分input type="text" id="time_s"秒
/div
/div
设置css样式
div.box{width:300px;padding:20px;margin:20px;border:4px dashed #ccc;}
div.boxspan{color:#999;font-style:italic;}
div.content{width:250px;margin:10px 0;padding:20px;border:2px solid #ff6666;}
input[type='text']{width:45px;height:35px;padding:5px 10px;margin:5px 0;border:1px solid #ff9966;}
编写jquery代码
$(function(){
show_time();
});
function show_time(){
var time_start = new Date().getTime(); //设定当前时间
var time_end = new Date("2015/10/01 00:00:00").getTime(); //设定目标时间
// 计算时间差
var time_distance = time_end - time_start;
// 天
var int_day = Math.floor(time_distance/86400000)
time_distance -= int_day * 86400000;
// 时
var int_hour = Math.floor(time_distance/3600000)
time_distance -= int_hour * 3600000;
// 分
var int_minute = Math.floor(time_distance/60000)
time_distance -= int_minute * 60000;
// 秒
var int_second = Math.floor(time_distance/1000)
// 时分秒为单数时、前面加零
if(int_day 10){
int_day = "0" + int_day;
}
if(int_hour 10){
int_hour = "0" + int_hour;
}
if(int_minute 10){
int_minute = "0" + int_minute;
}
if(int_second 10){
int_second = "0" + int_second;
}
// 显示时间
$("#time_d").val(int_day);
$("#time_h").val(int_hour);
$("#time_m").val(int_minute);
$("#time_s").val(int_second);
// 设置定时器
setTimeout("show_time()",1000);
}
观察效果
某个时刻的截图
几秒后的截图
设计一个答题的小游戏,每道题可以有20秒时间作答,超过时间就要给出相应的提醒,由于20秒时间太长,不适合做GIF动态图,下面来看一下我写的5秒倒计时的测试程序结果:
一、主体程序
!DOCTYPE
html
html
head
meta
charset="utf-8"
/
title手写倒计时程序/title
link
rel="stylesheet"
type="text/css"
href="css/layout.css"/
/head
body
section
class="countDown"
span
id="countDownTime"/span
section
class="clear"/section
/section
script
src="js/jquery-1.11.0.js"
type="text/javascript"
charset="utf-8"/script
script
src="js/layout.js"
type="text/javascript"
charset="utf-8"/script
/body
/html
二、CSS样式
*{
margin:
0;
padding:0;
}
html{
font-size:
12px;
}
.countDown{
width:
3.8rem;
text-align:
center;
margin:
2rem
auto
auto;
}
.countDown
#countDownTime{
font-size:
2rem;
}
三、Jquery程序
先来说一下倒计时的原理:
1、将时间转为0:0格式
2、需要开启一个定时器,每隔1000ms就让时间自动减1
3、判断时间是否为0,如果为0则代表计时结束,此时需要给出提示或者做其他事情
下面来看具体实现的倒计时程序:
$(function(){
var
countDownTime=parseInt(5);
//在这里设置每道题的答题时长
function
countDown(countDownTime){
var
timer=setInterval(function(){
if(countDownTime=0){
showTime(countDownTime);
countDownTime--;
}else{
clearInterval(timer);
alert("计时结束,给出提示");
}
},1000);
}
countDown(countDownTime);
function
showTime(countDownTime){
//这段是计算分和秒的具体数
var
minute=Math.floor(countDownTime/60);
var
second=countDownTime-minute*60;
$("#countDownTime").text(minute+":"+second);
}
})
带着我写的原理再去看这段JS程序估计比较容易吧,希望对小伙伴有帮助。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流