vue之獲取滾動條位置


前言

記錄一下獲取滾動條相對距離和絕對距離的方法

說明(個人理解)

  • 相對距離
    當前滾動條到父滾動條的距離
  • 絕對距離
    當前滾動條到頁面頂部的位置

實例

1.獲取當前組件DOM標簽滾動條位置

// 為保證DOM節點加載完畢,要在 mounted 中實現
// 使用 $refs 獲取DOM實例,以 tree 為例
mounted() {
    this.$refs.tree.addEventListener('scroll', e => {
        console.log('父滾動條到頁面頂部距離', e.target.offsetTop)
        console.log('相對距離', this.$refs.tree.scrollTop)
        console.log('絕對距離', e.target.offsetTop + this.$refs.tree.scrollTop)
    }, false)
}

2.獲取子組件DOM標簽滾動條位置

mounted() {
    this.$refs.tree.$el.addEventListener('scroll', e => {
        console.log('父滾動條到頁面頂部距離', e.target.offsetTop)
        console.log('相對距離', this.$refs.tree.$el.scrollTop)
        console.log('絕對距離', e.target.offsetTop + this.$refs.tree.$el.scrollTop)
    }, false)
},

總結

  • 當使用 $refs 獲取DOM實例時,如果加在當前組件DOM節點上,則獲取的是DOM實例。如果加在子組件上,則獲取的是子組件實例,可以再使用 $el 獲取到組件實例對應的DOM實例


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM