關(guān)于vue滾動scrollTop 賦值一直為0問題

Vue中document.body.scrollTop的值總為零的解決辦法
最近在做vue的時候監(jiān)聽頁面滾動發(fā)現(xiàn)document.body.scrollTop一直為0
但是發(fā)現(xiàn)document.body.scrollTop一直是0。
查資料發(fā)現(xiàn)是DTD的問題。
頁面指定了DTD,即指定了DOCTYPE時,使用document.documentElement。
頁面沒有DTD,即沒指定DOCTYPE時,使用document.body。

說一下我的解決問題流程:
1,賦值給scrollTop,發(fā)現(xiàn)一直為0

// 滾動到底部
    onScrollBottom () {
      this.$nextTick(() => {
        const container = this.$el.querySelector('.chat-content')
        if (container)
          document.documentElement.scrollTop = container.scrollHeight
      })
    }

打印結(jié)果:

container.scrollHeight: 1127
container.scrollTop:0

2,然后我直接使用body去滾動,發(fā)現(xiàn)依然沒有效果
3,通過F12檢查工具,發(fā)現(xiàn)body高度一直為0

body高度.png

4,根據(jù)高度一直為0,找到https://blog.csdn.net/qq_24729895/article/details/79049066
5,比對vue項目的index.html,確實是指定了DTD類型

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
    <title>數(shù)字校園系統(tǒng)</title>
    <!-- 可隱藏地址欄,僅針對IOS的Safari(注:IOS7.0版本以后,safari上已看不到效果) -->
    <meta name="apple-mobile-web-app-capable" content="yes"/>
    <!-- 僅針對IOS的Safari頂端狀態(tài)條的樣式(可選default/black/black-translucent ) -->
    <meta name="apple-mobile-web-app-status-bar-style" content="black"/>
    <!-- IOS中禁用將數(shù)字識別為電話號碼/忽略Android平臺中對郵箱地址的識別 -->
    <meta name="format-detection" content="telephone=no, email=no"/>
  </head>
  <body>
    <div id="app"></div>
  </body>
</html>

代碼修改為:

document.documentElement.scrollTop = container.scrollHeight

完美~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容