标题栏新消息提示效果

标题栏新消息提示如图:

公司的项目中用到了这个新消息提示的效果,主要用于提示用户有新消息。具体实现代码如下:

[code=”javascript”]
var newMessageRemind={
_step: 0,
_title: document.title,
_timer: null,
//显示新消息提示
show:function(){
var temps = 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操作
}

};
[/code]

调用显示新消息提示:newMessageRemind.show();

调用取消新消息提示:newMessageRemind.clear();

查看demo:https://www.html.cn/demo/newMessageRemind/

另:单纯的这个代码会出现这么一个问题:
就是当你打开一个站点很多张页面的时候,如过有新消息,那么所有页面都会不停的闪,当你查看消息后其他页面仍会提示。

我们公司是通过使用Cookie的方式解决的,当查看新消息后所有标题闪动的页面将全部取消提示。

赞(0) 打赏
未经允许不得转载:WEB前端开发 » 标题栏新消息提示效果

评论 7

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #-49

    清除操作直接newMessageRemind.clear()就行了,干嘛还要那么写,还得传参进去。。。

    clear: function(){
    20
    if (newMessageRemind._timer) {
    21
    clearTimeout(newMessageRemind._timer );
    22
    document.title = newMessageRemind._title;
    23
    //这里写Cookie操作
    24
    };
    25
    }

    QiQiBoY8年前 (2011-01-03)回复
    • 我年纪大了,脑子不中用了!谢谢!

      8年前 (2011-01-03)回复
  2. #-48

    这个人人网经常用。学习了。

    Glow8年前 (2011-01-03)回复
  3. #-47

    这个方式人人网经常用。学习了。

    Glow8年前 (2011-01-03)回复
  4. #-46

    搜道上竟然有那么多美女,O,O

    ghy8年前 (2011-01-04)回复
  5. #-45

    顺着你的思路改写了一下:
    var MessageTip = function(){
    var step = 0,
    title = document.title,
    timer = null,
    empty = ‘【 】’,
    full = ‘【new】’;

    function show(){
    var temps = title.replace(empty,”).replace(full,”);
    timer = setInterval(function(){
    step ++;
    if(step == 3){
    step = 1
    }
    if(step == 1){
    document.title = empty + temps;
    }
    if(step == 2){
    document.title = full + temps;
    }
    },1000);
    }

    function setStyle(_empty,_full){
    empty = _empty;
    full = _full
    }

    function clear(){
    if(timer){
    clearTimeout(timer)
    document.title = title;
    }
    }
    return {
    setStyle:setStyle,
    show:show,
    clear:clear
    }
    }

    some one8年前 (2011-01-06)回复
  6. #-44

    好像鼠标右键放到页面上消息闪烁就停止了 测试浏览器:IE8

    roundseven8年前 (2011-03-15)回复

前端开发相关广告投放 更专业 更精准

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏