V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
15651980765
V2EX  ›  问与答

网页端能实现类似 QQ、微信移动端那种浏览消息时来新消息右下角出提示的功能吗?

  •  
  •   15651980765 · 2019-08-12 18:44:11 +08:00 · 1365 次点击
    这是一个创建于 1965 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求:浏览消息时收到新消息,右下角出提示。点击提示滚到新消息处,提示消失。手动滚到新消息处时提示也会消失。

    原来的逻辑:不论是自己发消息还是收到消息,都会自动滚到底部。

    我的实现方案:有新消息时,判断是否是自己发送的,如果是走原来的逻辑。如果是收到别人发来的消息,判断当前滚动条是否在底部,如果在底部,走原来的逻辑;如果不在底部,展示新消息提示。

    遇到的问题:用到的框架是 angularjs,push 新消息后,滚到底部用一层 timeout 包裹,这样能保证在页面渲染出新消息后才执行滚到底部。但是,如果收到消息很快很多,上一条消息可能还没来得及滚到底部,就开始对下一条消息做处理,导致判断滚动条是否到底部时有可能为 false,本来不该出现提示的情况出现了提示。

    暂时想到的解决办法: 不严格判断滚动条是否到底部,给一个容错的高度,滚动条距离底部超过这个高度才认为在浏览消息,允许出提示。

    想请教下大佬们,我这个解决方法是否可行,有没有更加靠谱的方法。

    4 条回复    2019-08-12 19:24:14 +08:00
    akira
        1
    akira  
       2019-08-12 19:04:45 +08:00
    谷歌浏览器有自带这个功能吧
    izoabr
        2
    izoabr  
       2019-08-12 19:21:19 +08:00
    HTML5 支持的新特性,关键字:Notification
    izoabr
        3
    izoabr  
       2019-08-12 19:22:08 +08:00
    实时消息,关键字:Websocket
    izoabr
        4
    izoabr  
       2019-08-12 19:24:14 +08:00
    嗯,然后你的标题的问题跟内容提的问题不是一个,也怪我没好好看内容
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2492 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 05:02 · PVG 13:02 · LAX 21:02 · JFK 00:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.