倒计时是web开发中常见的组件,请完成second和render两个函数,完成倒计时的显示部分
1、second函数的输入为整数,返回{day: Int, hour: Int, min: Int, second: Int}
2、render函数的输入为second函数的输出,将数据在页面对应的DOM元素上显示出来,格式如html所示
3、如果day为0,隐藏对应的DOM元素,否则显示(请直接使用已经实现的css代码)
4、数值不足两位,前面补充0
function second(second) { const day = Math.floor(second / (3600 * 24)) const hour = Math.floor(second % (3600 * 24) / 3600) >= 24 ? Math.floor(second % (3600 * 24) / 3600) % 24 : Math.floor(second % (3600 * 24) / 3600) const minute = Math.floor(second % (3600 * 24) / 60) >= 60 ? Math.floor(second % (3600 * 24) / 60) % 60 : Math.floor(second % (3600 * 24) / 60) const second1 = Math.floor(second % (3600 * 24)) >= 60 ? Math.floor(second % (3600 * 24)) % 60 : Math.floor(second % (3600 * 24)) return { day: +day, hour: +hour, min: +minute, second: +second1 } } function render(data) { const { day, hour, min, second } = data const jsCountdown = document.querySelector('#jsCountdown') const reg = /(\d+)天\s(\d+):\s(\d+):\s(\d+)/ const res = jsCountdown.innerText.replace(reg, () => `<span>${day<10?'0'+day:day}天</span> <span>${hour<10?'0'+hour:hour}:</span> <span>${min<10?'0'+min:min}:</span> <span>${second<10?'0'+second:second}</span>` ) jsCountdown.innerHTML = res if (day === 0) { jsCountdown.children[0].className = 'hide' } }
function second(second) { return { day : parseInt(second / 60 / 60 / 24), hour : parseInt(second / 60 / 60 % 24), min : parseInt(second / 60 % 60), second : parseInt(second % 60) } } function render(data) { const div = document.querySelector('#jsCountdown'); div.innerHTML = ` <span class=${data.day === 0 ? 'hide' : ''}>${data.day < 10 ? '0' + data.day : data.day}天</span> <span>${data.hour < 10 ? '0' + data.hour : data.hour}:</span> <span>${data.min < 10 ? '0' + data.min : data.min}:</span> <span>${data.sec < 10 ? '0' + data.sec : data.sec}</span> `; }
<div id="jsCountdown"> <span id="day">01天</span> <span id="hour">02:</span> <span id="min">03:</span> <span id="second">04</span> </div>
function second(second) { let day = parseInt(((second / (60 * 60)) / 24)) let hour = parseInt(second / (60 * 60)) - day * 24 let min = parseInt(parseInt(second % (60 * 60)) / 60) let sec = second - (day * 24 * (60 * 60) + hour * (60 * 60) + min * 60) return { day: day, hour: hour, min: min, second: sec } } function render(data) { const daySpan = document.querySelector('#day') const hourSpan = document.querySelector('#hour') const minSpan = document.querySelector('#min') const secSpan = document.querySelector('#second') function format(num, length) { return (Array(length).join("0") + num).slice(-length); } const day = parseInt(daySpan.innerHTML, 10) if(data.day === 0) { daySpan.classList.add('hide') } daySpan.innerHTML = (data.day < 10 ? format(data.day, 2) : data.day) + '天' hourSpan.innerHTML = (data.hour < 10 ? format(data.hour, 2) : data.hour) + ':' minSpan.innerHTML = (data.min < 10 ? format(data.min, 2) : data.min) + ':' secSpan.innerHTML = (data.second < 10 ? format(data.second, 2) : data.second) }
function second(second) { return obj = { day:parseInt(second/60/60/24), hour:parseInt(second/60/60%24), min:parseInt(second/60%60), second:parseInt(second%60) } } function render(data) { var jsCountdown = document.getElementById('jsCountdown'); var span = jsCountdown.querySelectorAll('span'); Object.keys(data).forEach((el,index)=>{ data[el] = data[el]<10?'0'+data[el]:data[el]; span[index].innerHTML = el=='day'?data[el]+'天': (el=='second'?data[el]:data[el]+':'); el=='day' && parseInt(data[el])==0? span[index].className='hide':span[index].className=''; }) }
function second(second) { const s = second % 60 const m = ~~(second / 60) % 60 const h = ~~(second / 3600) % 24 const d = ~~(second / 86400) return { second: s, min: m, hour: h, day: d } } function render(data) { const [day, hour, min, second] = jsCountdown.children day.innerText = String(data.day).padStart(2, '0') + '天' if (day.innerText === '00天') day.classList.add('hide') hour.innerText = String(data.hour).padStart(2, '0') + ':' min.innerText = String(data.min).padStart(2, '0') + ':' second.innerText = String(data.second).padStart(2, '0') }
// 传入参数为整数 时间长(s) function second(second) { // 初始化时间单位 let sec = 1 let min = sec * 60 let hr = min * 60 let day = hr * 24 // 返回结果 let res = { day: parseInt(second / day), hour: parseInt(second % day / hr), min: parseInt(second % hr / min), second: parseInt(second % min) } return res } // 传入参数为second方法的输出 function render(data) { // 补0 function addZero(param) { if (param < 10) { param = '0' + param } return param } var dom = document.getElementById('jsCountdown') let renderHtml = ` <span class="${data.day == 0 ? 'hide' : ''}">${addZero(data.day)}天</span> <span>${addZero(data.hour)}:</span> <span>${addZero(data.min)}:</span> <span>${addZero(data.second)}</span> ` dom.innerHTML = renderHtml }
function second(second) { var oneDay = 3600 * 24; var Day = Math.floor(second / oneDay); var Hour = Math.floor((second % oneDay) / 3600); var Min = Math.floor((second % oneDay % 3600) / 60); var Sec = Math.floor((((second % oneDay) % 3600) % 60) % 60); return{day: Day,hour:Hour,min:Min,second:Sec} } function render(data) { for(var item in data) { if(data[item] < 10) { data[item] = "0" + data[item]; } } var spans = document.getElementById("jsCountdown").getElementsByTagName("span"); if(data.day == "00") { spans[0].className = "hide"; } else { spans[0].innerHTML = data.day + "天"; } spans[1].innerHTML = data.hour + ":"; spans[2].innerHTML = data.min + ":"; spans[3].innerHTML = data.second; }
function second(second) { return { day: Math.floor(second / 3600 / 24), hour: Math.floor(second / 3600 % 24), min: Math.floor(second / 60 % 60), second: second % 60 } } function render(data) { const d = document.getElementById('jsCountdown'); d.innerHTML = ` <span class=${data.day === 0 ? 'hide' : ''}>${('0' + data.day).slice(-2)}天</span> <span>${('0' + data.hour).slice(-2)}:</span> <span>${('0' + data.min).slice(-2)}:</span> <span>${('0' + data.second).slice(-2)}</span> `; }