問(wèn)題:在H5中,我們有這樣的需求:例如有列表的時(shí)候,滾動(dòng)到底部時(shí),需要加載更多。
解決方案:可以采用window的滾動(dòng)事件進(jìn)行處理
分析:如果滾動(dòng)是針對(duì)整個(gè)屏幕而言的(不針對(duì)于某個(gè)界面小塊),那么這個(gè)應(yīng)該是是成立的:屏幕的高度+最大滾動(dòng)的距離 = 內(nèi)容的高度
代碼實(shí)現(xiàn):
<html>
<head>
<meta charset="UTF-8">
<title>監(jiān)聽(tīng)滾動(dòng)到底部滾動(dòng)底部</title>
<style>
.div2{
width:100px;
height:100px;
border:1px solid red
}
*{
margin:0
}
.button1:active{
background:red
}
body{
height:375px;
width:667px;
border:1px solid red
}
.div1{
height:600px;
width:100%;
background:red
}
.div2{
height:600px;
width:100%;
background:green
}
.div3{
height:600px;
width:100%;
background:blue
}
.div4{
height:600px;
width:100%;
background:yellow
}
</style>
</head>
<body >
<div class="div0">
<div class="div1"></div>
<div class="div2"></div>
<div class="div3"></div>
<div class="div4"></div>
<div class="div5"></div>
</div>
</body>
<script>
window.onload = function(){
//獲取容器父元素
var div0 = document.getElementsByClassName('div0')[0];
//height 計(jì)算屬性的高度
var height = parseInt((window.getComputedStyle(div0, null).height).replace('px', ''));
console.log(height,"div0的計(jì)算高度")
window.onscroll = function(){
/*
scrollTop 為滾動(dòng)條頂端距離界面右上角的距離,這里采用了兼容性寫(xiě)法
*/
let scrollTop = document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
//+-5是為了保證一定的彈性,并非要?jiǎng)偤孟嗟炔懦霭l(fā),
if(height-5<=scrollTop+clientHeight&&scrollTop+clientHeight<=height+5){
console.log('監(jiān)聽(tīng)成功','到達(dá)底部')
}
}
}
</script>
</html>
代碼的相關(guān)說(shuō)明:很多時(shí)候,列表加載,我們不能夠把裝載子元素的父容器高度設(shè)死,此時(shí)采用style設(shè)置為auto時(shí),element.style.height
也會(huì)等于auto ,建議采用clientHeight
或者利用計(jì)算樣式 getComputedStyle
計(jì)算高度
總結(jié)
以上所述是小編給大家介紹的解決HTML5中滾動(dòng)到底部的事件問(wèn)題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!