美文网首页前端交流
直播/聊天中评论/消息自动滚动功能的实现

直播/聊天中评论/消息自动滚动功能的实现

作者: 羽翼的翼 | 来源:发表于2021-08-05 14:55 被阅读0次

    最近在做一个直播的页面,其中有一个功能是实现评论实时滚动,具体效果如下图

    大致思路

    • 获取DOM,Vue中建议使用ref
    • 元素的scrollTop =元素的.scrollHeight;

    Element.scrollTop补充

    Element.scrollTop属性可以获取或设置一个元素的内容垂直滚动的像素数。

    一个元素的 scrollTop 值是这个元素的内容顶部(卷起来的)到它的视口可见内容(的顶部)的距离的度量。当一个元素的内容没有产生垂直方向的滚动条,那么它的 scrollTop 值为0。

    Element.scrollHeight补充

    Element.scrollHeight 只读属性,是一个元素内容高度的度量,包括由于溢出导致的视图中不可见内容。

    scrollHeight的值等于该元素在不使用滚动条的情况下为了适应视口中所用内容所需的最小高度。 没有垂直滚动条的情况下,scrollHeight值与元素视图填充所有内容所需要的最小值clientHeight相同。包括元素的padding,但不包括元素的border和margin。scrollHeight也包括 ::before::after这样的伪元素。

    更详细的介绍可以参考MDN上面的介绍
    https://developer.mozilla.org/zh-CN/docs/Web/API/Element/scrollHeight

    具体代码

    html

     <div class="tabs danmuBox" ref="scrolldIV">
              <div v-for="item in danmuList" :key="item.id" class="item">
                <div class="left">
                  A
                </div>
                <div class="right">
                  <div class="author">
                    {{ item.author }}
                  </div>
                  <div class="text" >{{ item.text }}</div>
    
                </div>
              </div>
          </div>
    

    js

    
    let div = this.$refs.scrolldIV
    this.$nextTick(() => {
      div.$el.scrollTop = div.$el.scrollHeight;
    })
    

    data

     danmuList: [
            {
              id: 1,
              text: "AAAAAA",
              author: "wb_zhhh",
              color:'f5f5f5'
            },
            {
              id: 2,
              text: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaa",
              author: "wb_zhhhAAAAAAAAAAAAAAAAAAAAAAAAa",
              color:'999999'
            },
            {
              id: 3,
              text: "AAAAAA",
              author: "wb_zhhh",
              color:'666666'
            },
          ],
    

    使用案例

    333.gif

    代码地址

    https://github.com/menglin1997/hls-video

    大家好,我是[张小翼],欢迎关注我的公众号(前端zml),一起学习交流

    前端zml.png

    相关文章

      网友评论

        本文标题:直播/聊天中评论/消息自动滚动功能的实现

        本文链接:https://www.haomeiwen.com/subject/kteuvltx.html