设置Javascript倒计时的初始值
我正在尝试制作一个倒计时计时器,从点击按钮开始 我已经让它工作了几分钟和几秒钟,但似乎不知道如何在点击按钮之前获得显示的静态时间 我想知道的是,我如何才能在网页上显示开始按钮上方的时间(在本例中为59分钟59秒),并在按下按钮后启动倒计时功能设置Javascript倒计时的初始值,javascript,html,Javascript,Html,我正在尝试制作一个倒计时计时器,从点击按钮开始 我已经让它工作了几分钟和几秒钟,但似乎不知道如何在点击按钮之前获得显示的静态时间 我想知道的是,我如何才能在网页上显示开始按钮上方的时间(在本例中为59分钟59秒),并在按下按钮后启动倒计时功能 <head> <input type="button" onclick="countdown('countdown');" value="Start" /> <script type="text/javascript">
<head>
<input type="button" onclick="countdown('countdown');" value="Start" />
<script type="text/javascript">
var cdtime;
var minutes = 59;
var seconds = 59;
function countdown(element) {
cdtime = setInterval(function() {
var timer = document.getElementById(element);
if(seconds == 0) {
if(minutes == 0) {
alert(timer.innerHTML = "countdown's over!");
clearInterval(cdtime);
return;
} else {
minutes--;
seconds = 60;
}
}
if(minutes > 0) {
var minutetxt = minutes + (minutes > 1 ? ' minutes' : 'minute');
} else {
var minutetxt = '';
}
var secondstxt;
if(seconds > 1) {
secondstxt = 'seconds';
} else {
secondstxt = 'second';
}
timer.innerHTML = minutetxt + ' ' + seconds + ' ' + secondstxt;
seconds--;
}, 1000);
}
</script>
</head>
<body>
<div id='countdown'></div>
</body>
</html>
var-cdtime;
var分钟=59;
var秒=59;
函数倒计时(元素){
cdtime=setInterval(函数(){
var timer=document.getElementById(元素);
如果(秒==0){
如果(分钟==0){
警报(timer.innerHTML=“倒计时结束!”);
清除间隔(cdtime);
回来
}否则{
分钟--;
秒=60;
}
}
如果(分钟>0){
var minuteText=minutes+(minutes>1?'minutes':'minute');
}否则{
var minuteText='';
}
var secondstxt;
如果(秒>1){
secondstxt=‘秒’;
}否则{
secondstxt=‘second’;
}
timer.innerHTML=minuteText+''+seconds+''+secondstxt;
秒--;
}, 1000);
}
- 创建一个div并使用JavaScript使用该div的set-inner-html(我是在定义了分和秒之后完成的)
- 同时,把你们的元素从标题中带出来,放到主体中
- 若并没有使用jquery等待窗口完成加载,那个么将脚本放在所有html元素之后
var-cdtime;
var分钟=59;
var秒=59;
document.getElementById(“initialtime”).innerHTML=minutes+“:”+seconds;
函数倒计时(元素){
cdtime=setInterval(函数(){
var timer=document.getElementById(元素);
如果(秒==0){
如果(分钟==0){
警报(timer.innerHTML=“倒计时结束!”);
清除间隔(cdtime);
回来
}否则{
分钟--;
秒=60;
}
}
如果(分钟>0){
var minuteText=minutes+(minutes>1?'minutes':'minute');
}否则{
var minuteText='';
}
var secondstxt;
如果(秒>1)
{
secondstxt=‘秒’;
}
其他的
{
secondstxt=‘second’;
}
timer.innerHTML=minuteText+''+seconds+''+secondstxt;
秒--;
},1000);}
为什么不把
59:59
放在div的右边,然后从60*60-2(59:58)
开始倒计时。在文档的
中还有开始按钮。下面是如何快速获取代码的示例
但是,如果您需要/想要使用JavaScript设置div
的初始值,这里有一些选项和一些额外的改进;包括一个更精确的计时器功能,也是可重用的
功能启动计时器(持续时间,显示FTN){
var start=Date.now(),diff,obj;
(函数计时器(){
diff=持续时间-((Date.now()-start)/1000)| 0);
obj=分钟秒(差异);
显示FTN(目标分钟,目标秒);
如果(差异>0){
设置超时(定时器,200);
}
}());
}
功能分钟数秒(持续时间){
返回{
“分钟”:(持续时间/60)| 0,
“秒”:(持续时间%60)| 0
};
}
//我们需要等待页面加载,然后才能选择任何DOM元素
window.onload=函数(){
var duration=5,//设置为60*60-1,持续59分59秒
display1=document.querySelector(“#countdown1”),
display2=document.querySelector(“#countdown2”),
开始时间=分钟秒(持续时间);
//这里是设置初始值的地方
格式1(开始时间.分钟,开始时间.秒);
格式2(开始时间.分钟,开始时间.秒);
//在这里,我们添加了一个事件列表输入,单击按钮时会调用它
document.querySelector(“#startcountdown1”).addEventListener('click',listener);
document.querySelector(“#startcountdown2”).addEventListener('click',listener);
函数侦听器(事件){
//我们不想为同一个按钮开始两次倒计时,
//因此,删除侦听器
event.target.removeEventListener('click',listener);
var formatter=event.target.id='startcountdown1'?format1:format2;
startTimer(持续时间、格式化程序);
}
//这两个函数只是格式化剩余的分钟数和
//秒不同
函数格式1(分、秒){
分钟=分钟+(分钟>1?“分钟”:“分钟”);
秒=秒+(秒>1?“秒”:“秒”);
display1.textContent=分钟+''+秒;
}
函数格式2(分、秒){
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
display2.textContent=分钟+':'+秒;
}
};代码>
两个选项-最初将时间放在html中
<div id='countdown'>59 minutes 59 seconds</div>
使用第二个选项,您可以用返回字符串的代码替换文本,或者将字符串生成代码分离到一个单独的函数中进行调用。//其中eventDate=event start date输入event start date
EventStartIn=(eventDate:Date)=>{
const today=moment().format()
const actualStartEvent=时刻(eventDate).format();
如果(今天$(document).ready(function() {
function initialize() {
document.getElementById("countdown").innerHTML = "59 minutes 59 seconds";
}
intialize();
})
const actualStartEvent = moment(eventDate).format();
if (today < actualStartEvent) {
const todayDate = moment(today);
const actualDate = moment(actualStartEvent);
const dayDiffrence = actualDate.diff(todayDate, 'days');
if (dayDiffrence === 0) {
const timeDiff = moment.utc(moment(actualDate, 'DD/MM/YYYY HH:mm:ss').diff(moment(
todayDate, 'DD/MM/YYYY HH:mm:ss'))).format('HH:mm');
const hours = moment.duration(timeDiff).hours();
const min = moment.duration(timeDiff).minutes();
return `In ${hours >= 1 ? timeDiff : min} ${hours >= 1 ? `${hours > 1 ? 'hours' : 'hour'}` :
'minutes'}`;
}
return `In ${dayDiffrence} ${dayDiffrence > 1 ? 'days' : 'day'}`;
}
if (today > actualStartEvent) {
const todayDate = moment(today);
const actualDate = moment(actualStartEvent);
const dayDiffrence = actualDate.diff(todayDate, 'days');
if (dayDiffrence === 0) {
const timeDiff = moment.utc(moment(todayDate, 'DD/MM/YYYY HH:mm:ss').diff(moment(
actualDate, 'DD/MM/YYYY HH:mm:ss'))).format('HH:mm');
const hours = moment.duration(timeDiff).hours();
const min = moment.duration(timeDiff).minutes();
return `${hours >= 1 ? timeDiff : min} ${hours >= 1 ? `${hours > 1 ? 'hours' : 'hour'}` :
'minutes'} Ago`;
}
return `${Math.abs(dayDiffrence)} ${Math.abs(dayDiffrence) > 1 ? 'days' : 'day'} Ago`;
}
return null;
}