说明:以下代码是节目预告的js代码,设定在后可以定时展示出需要展示的内容,但是有一个缺点是,每一秒要跳动一下,让展示的内容感官不是很好。
在此,请求各位朋友,能不帮忙改写一下【将每一秒跳动的频率改为list:{'06.00':'内容一'}设定的时间跳动】,就可以正常展示,不会闪烁。
本人初学者,我的描述可能并不专业,请各位朋友们理解万岁,并协助改写一下,谢谢!
javascript
var PlayList={
list:{
'06:00':'内容一',
'11:00':'内容二',
'19:00':'内容三',
'22:00':'内容四',
'23:59':' ',
},
live:function (it){//开始计时
clearInterval(it.timer);//清除上次计时任务
var date=new Date(this.time).toString();//取得服务器时间字符串
this.db=[];
for(var k in this.list){//转换为数组
this.db.push({
time:new Date(date.replace(/\d+:\d+(:\d+)/,k+'$1')),//转换为标准时间
title:this.list[k]
})
}
this.db.sort(function (a,b){//排序节目表
return a.time-b.time
});
it.timer=setInterval(function() {//频发计时
it.time+=1000;
var cur,next,find;
for (var i = 0, j = it.db.length; i < j; i++) {//查找当前节目
var o=it.db[i];
if (o.time>it.time) {find=true;break}//如果有一个节目时间大于当前时间,即找到下一个节目
}
if(!find)i=0;//如果没有节目比现在时间大,意味着在音乐时间
next=it.db[i].title;//取得下一个节目标题
cur=i>0?it.db[i-1].title:'检修';//取得当前节目标题
it.onInterval(new Date(it.time),cur,next)
},1000);
setTimeout(function() {
it.index()
},1000*60*10);//10分钟后校验服务器时间
},
index:function (){//初始化
this.update(function (time){
this.time=time;
this.live(this)
},this)
},
update:function (end,context){//取得服务器时间
var o = !-[1,] ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest;
o.open('HEAD', '/', true);
o.onreadystatechange=function (){
if (o.readyState==4 && o.status==200)
end.call(context,Date.parse(o.getResponseHeader('Date')))
}
o.send(null)
},
onInterval:Function()//间隔事件
};
PlayList.index();
PlayList.onInterval=function (now,cur,next){
document.getElementById('播放').innerHTML=cur
};