之前有个jQuery项目需要在页面上实现紧急公告的功能,需求如下:
1、公告内容由后台操作人员编辑,前台展示
2、根据后台传入的时间来判断公告是否会弹出、用户在该时间段第一次打开页面时,公告弹出。关闭后在该时间段再次进入页面时公告不予显示,超过过期日期公告不显示
//紧急公告
PageObj.EmergencyNotice=function () {
cashFind.getEmergencyNotice(function (res) {
if(res.length!=0){
for(var i=0;i<res.length;i++){
var li = res[0];
var htmlbox='<img src="'+li.image_url+'">';//
if(li.image_url){
$('.guide-box-detile-img').html(htmlbox);
}else{
$('.guide-box-detile-img').hide();
}
$('.guide-box-detile-content').html(li.content);
guideboxnew.show('.guide-box-new');
var storage=window.localStorage;
//过期时间存在
if(li.end_time&&li.end_time!=0){
var endTimee = li.end_time;
var endTime=endTimee.replace(/\-/g, "/").substring(0,19);
console.log('endTime',endTime);
var newtime = (new Date()).Format("yyyy/MM/dd hh:mm:ss");
var current = newtime.getTime();//得到当前时间的毫秒数
var end = endTime.getTime(); //得到结束时间的毫秒数
var time = end-current;
//根据两次弹框的过期时间是否相同来判断是否清理缓存
if(time>=0){
if(!storage.getItem("endingTime")||storage.getItem("endingTime")!=endTime){
localStorage.clear();
storage.setItem("endingTime",endTime);
storage.setItem("pageLoadCount",'0');
}
storage.pageLoadCount = parseInt(storage.getItem("pageLoadCount")) + 1;
//判断在此时段内第一次进入该页面
if(storage.getItem("pageLoadCount")==1){
guideboxnew.show('.guide-box-new');
}else{guideboxnew.hide('.guide-box-new');}
}else{guideboxnew.hide('.guide-box-new');}
}
//过期时间不存在
else{
if(!storage.getItem("upTime")||storage.getItem("upTime")!=li.uptime){
localStorage.clear();
storage.setItem("upTime",li.uptime);
storage.setItem("pageLoadCount",'0');
}
storage.pageLoadCount = parseInt(storage.getItem("pageLoadCount")) + 1;
if(storage.getItem("pageLoadCount")==1){
guideboxnew.show('.guide-box-new');
}else{guideboxnew.hide('.guide-box-new');}
}
}
}
})
};
$('.guide-box-close').unbind("click").bind("click",function () {
guidebox.hide('.guide-box');
});
$('.guide-box-close-new').unbind("click").bind("click",function () {
guideboxnew.hide('.guide-box-new');
});