我正在尝试制作一个显示电影播放量的小计数器,例如在YouTube上播放。
我想要时间输出如下:
<div id="timeInfo">00:23</div>
我如何实现这一目标? 我尝试了以下但没有成功:
function infTime (){
timeInfo.innerHTML = formatTime(video.currentTime);
if (video.duration) {
timeInfo.innerHTML = formatTime(video.duration);
}
}
function formatTime (seconds) {
seconds = Math.round(seconds);
minutes = Math.floor(seconds / 60);
minutes = (minutes >= 10) ? minutes : "0" + minutes;
seconds = Math.floor(seconds % 60);
seconds = (seconds >= 10) ? seconds : "0" + seconds;
return minutes + ":" + seconds;
}
答案 0 :(得分:1)
这一行有问题:
seconds = Math.round(seconds);
您希望在此处使用Math.floor
来获得正确的结果。
答案 1 :(得分:0)
您通过两次分配“innerHTML”来覆盖内容。第二个表达式可以用“+ =”编写,否则(更好)你可以单独构建字符串:
infTime: function() {
var info = formatTime(video.currentTime) + (video.duration ? ' ' + formatTime(video.duration) : '');
timeInfo.innerHTML = info;
}
现在,当然,假设“timeInfo”实际上是对相应DOM元素的引用,可能是这样获得的:
var timeInfo = document.getElementById('timeInfo');
此外,请务必记住将“minutes”作为局部变量,方法是首先在“formatTime”函数中使用var
关键字:
var minutes = Math.floor(seconds / 60);