js实现的标题栏新消息闪烁提示效果
公司的项目中用到了这个新消息提示的效果,主要用于提示用户有新消息。具体实现代码如下:
varnewMessageRemind={ _step:0, _title:document.title, _timer:null, //显示新消息提示 show:function(){ vartemps=newMessageRemind._title.replace("【】","").replace("【新消息】",""); newMessageRemind._timer=setTimeout(function(){ newMessageRemind.show(); //这里写Cookie操作 newMessageRemind._step++; if(newMessageRemind._step==3){ newMessageRemind._step=1 }; if(newMessageRemind._step==1){ document.title="【】"+temps }; if(newMessageRemind._step==2){ document.title="【新消息】"+temps }; }, 800); return[newMessageRemind._timer,newMessageRemind._title]; }, //取消新消息提示 clear:function(){ clearTimeout(newMessageRemind._timer); document.title=newMessageRemind._title; //这里写Cookie操作 } };
调用显示新消息提示:newMessageRemind.show();
调用取消新消息提示:newMessageRemind.clear();
另:单纯的这个代码会出现这么一个问题:
就是当你打开一个站点很多张页面的时候,如过有新消息,那么所有页面都会不停的闪,当你查看消息后其他页面仍会提示。
我们公司是通过使用Cookie的方式解决的,当查看新消息后所有标题闪动的页面将全部取消提示。
下面毛票票小编再推荐一段代码
<script> (function(){ varOriginTitile=document.title,titleTime; document.addEventListener('visibilitychange',function(){ if(document.hidden){ document.title='死鬼去哪里了!'; clearTimeout(titleTime); }else{ document.title='(つェ⊂)咦!又好了!'; titleTime=setTimeout(function(){ document.title=OriginTitile; },2000); } }); })(); </script>
注意:上面的代码需用预加载jquery库才可以。直接放页面底部或js里面即可