亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue實現(xiàn)滾動底部加載下一頁指令的示例代碼

 更新時間:2023年10月09日 15:20:27   作者:舊城夢空  
vue中監(jiān)控滾動事件可以直接在mounted中綁定滾動事件,然后在銷毀前解綁滾動事件,本文通過實例代碼介紹vue實現(xiàn)滾動底部加載下一頁指令的過程,感興趣的朋友跟隨小編一起看看吧

vue中監(jiān)控滾動事件可以直接在mounted中綁定滾動事件,然后在銷毀前解綁滾動事件,例如:

<script>
export default {
	mounted() {
		//我這里的事例監(jiān)聽的是window的滾動事件
		window.addEventListener('scroll', this.showbtn)
	},
	destroyed() {
    window.removeEventListener('scroll', this.showbtn)
  },
	methods:{
		showbtn() {
		//滾動事件的代碼
		}
	}
}
</script>

但是如果在項目中用的比較多的話,每個頁面都這樣寫就有點不合適了。那這個時候可以把滾動事件自定義成指令

Vue.directive('scroll',{
  bind(el,binding) {
    let p = 0
    let t = 0
    let down = true
    let timer = null
    el.handler = () => {
      p =  window.pageYOffset ||
        document.documentElement.scrollTop ||
        document.body.scrollTop
        if (t < p) {
          down = true
        } else {
          down = false
        }
        t = p
        let sign = 10
        let scrollHeight=document.documentElement.scrollHeight//滾動條的高度
        let clientHeight=document.documentElement.clientHeight//瀏覽器的可視高度
        const scrollDistance = scrollHeight -p -clientHeight
        if (scrollDistance < sign && down) {
          if (timer) clearTimeout(timer)
          timer = setTimeout(() => {
            binding.value()
          }, 300)
        }
    }
    setTimeout(() => {
      window.addEventListener('scroll',el.handler)
    },1000)
  },
  //只有綁定不解綁的話,會出現(xiàn)在頁面加載的時候調(diào)用之前請求過的接口的情況,所以加上解綁比較好
  unbind(el) {
    window.removeEventListener('scroll',el.handler)
  }
})

到此這篇關于vue實現(xiàn)滾動底部加載下一頁指令的文章就介紹到這了,更多相關vue滾動底部加載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論