倒计时是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) { var Day = Math.floor(second/(3600*24)); var Hour = Math.floor((second%(3600*24))/3600); var Min = Math.floor(((second%(3600*24))%3600)/60); var Sec = Math.floor((((second%(3600*24))%3600)%60)%60); return{day: Day,hour:Hour,min:Min,second:Sec} } function render(data) { clearTimeout(timer); if(data == 0){ clearTimeout(timer); return; } var time= second(data); for(var item in time){ if(time[item]<10){ time[item] = "0"+time[item]; } } var spans = document.getElementById("jsCountdown").getElementsByTagName("span"); if(time.day == "00"){ spans[0].className = "hide"; }else{ spans[0].className = ""; spans[0].innerHTML = time.day + "天"; } spans[1].innerHTML = time.hour + ":"; spans[2].innerHTML = time.min + ":"; spans[3].innerHTML = time.second; data = data - 1; var timer = setTimeout(function(){render(data)},1000); }
function second(second) { var day = Math.floor(second / (3600 * 24)); var hour = Math.floor((second % (3600 * 24)) / 3600); var min = Math.floor(((second % (3600 * 24)) % 3600) / 60); var second = Math.floor((((second % (3600 * 24)) % 3600) % 60) % 60); return { day, hour, min, second } } function render(data) { let oDiv = document.getElementById("jsCountdown"); let aSpans = oDiv.children; if (data.day == 0) aSpans[0].setAttribute("class", "hide"); else aSpans[0].innerHTML = `${data.day < 10 ? '0' + data.day : data.day}天`; aSpans[1].innerHTML = `${data.hour < 10 ? '0' + data.hour : data.hour}:`; aSpans[2].innerHTML = `${data.min < 10 ? '0' + data.min : data.min}:`; aSpans[3].innerHTML = `${data.second < 10 ? '0' + data.second : 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> `; }
<!-- 描述 倒计时是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 --> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <style> /* 填写样式 */ .hide { display: none; } </style> </head> <body> <!-- 填写标签 --> <div id="jsCountdown"> <span>01天</span> <span>02:</span> <span>03:</span> <span>04</span> </div> <script type="text/javascript"> // 填写JavaScript function second(second) { let timeObj = {} const day = Math.floor(second / 60 / 60 / 24) const hour = Math.floor((second - day * 24 * 60 * 60) / 60 / 60) const min = Math.floor((second - day * 24 * 60 * 60 - hour * 60 * 60) / 60) second = second - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60 timeObj = { day, hour, min, second } return timeObj } function render(data) { document.querySelector('#jsCountdown').innerHTML = `<span>${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.second < 10 ? '0' + data.second : data.second}</span>` if (document.querySelector('#jsCountdown span:first-child').innerHTML.trim() == '00天') { // document.querySelector('#jsCountdown span:first-child').style.visibility = 'hidden' document.querySelector('#jsCountdown span:first-child').classList.add('hide') } } // render(second(3601)) </script> </body> </html>
function second(second) { const day = Math.floor(second / (24 * 60 * 60)) const hour = Math.floor((second % (60 * 60 * 24) / (60 * 60))) const min = Math.floor((second % (60 * 60 * 24)) % (60 * 60) / 60) const s = Math.floor((second % (60 * 60 * 24))%(60 * 60) % 60) return {day,hour,min,second:s} } function render({day,hour,min,second}) { const doms = document.getElementById('jsCountdown').getElementsByTagName('span') if(!day){ doms[0].classList.add('hide') } doms[0].textContent = (String(day).padStart(2,'0')+'天').trim() doms[1].textContent = (String(hour).padStart(2,'0')+':').trim() doms[2].textContent = (String(min).padStart(2,'0')+':').trim() doms[3].textContent = (String(second).padStart(2,'0')).trim() }请问为什么跑不过呢
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> `; }
function second(second) { return { day: Math.floor(second/24/3600), hour: Math.floor((second % (24*3600)) / 3600), min: Math.floor((second % ((24*3600)) % 3600) / 60), second: Math.floor(((second % ((24*3600)) % 3600) % 60) % 60) } } function render(data) { let jsCountDownList = document.querySelectorAll("#jsCountdown span") let keyArr = Object.keys(data) Array.from(jsCountDownList).forEach((item,index)=>{ if( index===0 && !data[keyArr[index]]) item.setAttribute('class','hide') item.innerText = (data[keyArr[index]] > 10 ? data[keyArr[index]] : '0' + data[keyArr[index]]) + item.innerText.slice(2) }) }
<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; }