原生js判斷某個區域的滾動條滾動到了底部###
講解==》
關系公式:element.scrollHeight - element.scrollTop === element.clientHeight
解釋:此公式可以用於判斷是否滾動到底
你必須知道這個方法 可以判斷滾動條滾動到了底部哈!
element.scrollHeight 是獲取這個元素區域的實際高度(包含被隱藏起來的高度)
element.scrollTop是獲取滾動條距離頂部的實際距離(包含被隱藏起來的高度)
element.clientHeight: 就是元素內部(可見高度) + 自身padding
在生命周期函數中 給滾動區域的元素注冊滾動事件
element.addEventListener('scroll', this.doSomething);
<div id="app">
<div class="box" id="box">
<div class="demo" v-for="(item,index) in condata" :key="index">{{item}}</div>
</div>
</div>
<!-- import Vue before Element -->
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<!-- import JavaScript -->
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="https://unpkg.com/element-ui@2.4.11/lib/index.js"></script>
<script>
new Vue({
el: '#app',
data() {
return {
condata:["121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","121212",
"121212","121212","121212","121212","121212","121212","121212","121212","最后一條數據了",
],
boxScrollpositionHeight:0,
boxElement:"",
boxscrollPosition:0,//滾動條所在的高度()
}
},
mounted () {
this.boxElement=document.getElementById("box");
this.boxElement.addEventListener('scroll', this.doSomething);
// 獲取滾動條滾動區域盒子的高度
this.boxScrollpositionHeight=this.boxElement.offsetHeight;
console.log("div內容區域的實際高度",this.boxElement.scrollHeight)
},
methods: {
doSomething(){
//此時滾動條所在的高度
let scrollcurHeight=this.boxElement.scrollTop;
console.log("滾動條距離頂部的實際高度",this.boxElement.scrollTop)
console.log("hah",this.boxElement.clientHeight)
// 關系公式:element.scrollHeight - element.scrollTop === element.clientHeight
// 解釋:此公式可以用於判斷是否滾動到底
if(this.boxElement.scrollHeight-this.boxElement.scrollTop===this.boxElement.clientHeight){
console.log("滾動到底部了",)
}
}
},
beforeDestroy() {
let boxscrollPosition=document.getElementById("box");
boxscrollPosition.removeEventListener('scroll', this.doSomething);
},
})
</script>
<style type="text/css">
*{
padding: 0;
margin: 0;
}
body,html,#app{
height: 100%;
}
.box{
width: 300px;
height: calc(100% - 279px);
background: #0366D6;
overflow: hidden;
overflow-y: auto;
}
.demo{
height: 30px;
line-height: 30px;
border-top:1px solid #ccc;
}
</style>