基于JavaScript實現(xiàn)無限加載瀑布流
本文實例為大家分享了JS實現(xiàn)無限加載瀑布流展示的具體代碼,供大家參考,具體內(nèi)容如下
1.在外層的div中,插入4個ul,ul左浮動
2.每次在創(chuàng)建節(jié)點之后,插入節(jié)點之前,要獲取每個ul的高度,找到最小的高度,然后將新創(chuàng)建的li節(jié)點插入該ul中
3.當文檔的高度 - 文檔的可視高度 <= 鼠標的滑動距離時 開始繼續(xù)創(chuàng)建節(jié)點
代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>瀑布流效果動態(tài)加載</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
#content {
width: 1000px;
border: 3px solid red;
margin: 0 auto;
overflow: hidden;
}
#content > ul {
width: 240px;
padding: 4px;
border: 1px solid blue;
float: left;
list-style-type: none;
}
#content > ul > li {
background-color: yellow;
font-size: 100px;
color: white;
text-align: center;
margin-bottom: 5px;
}
</style>
</head>
<body>
<div id="content">
<ul></ul>
<ul></ul>
<ul></ul>
<ul></ul>
</div>
</body>
<script type="text/javascript">
//隨機[m,n]之間的整數(shù)
function randomNumber(m, n) {
return Math.floor(Math.random() * (n - m + 1) + m);
}
//隨機顏色
function randomColor() {
return "rgb(" + randomNumber(0, 255) + "," + randomNumber(0, 255) + "," + randomNumber(0, 255) + ")";
}
//獲取當前的scrollTop
var scrollTopDistance;
//獲取所有的ul
var uls = document.getElementsByTagName("ul");
var i = 0;
var k = i;
function waterFall(){
for (i = k;i < k + 4;i++) {
//創(chuàng)建li
var li = document.createElement("li");
//隨機顏色
li.style.backgroundColor = randomColor();
//隨機高度
li.style.height = randomNumber(150, 500) + "px";
//手動轉(zhuǎn)換為字符串
li.innerHTML = i + 1 + "";
//插入到對應的ul中
//判斷哪個ul的高度低,該次創(chuàng)建的li就插入到此ul中
var index = 0; //記錄下標
for (var j = 0; j < uls.length; j++) {
if (uls[j].offsetHeight < uls[index].offsetHeight) {
index = j;
}
}
//將元素節(jié)點插入文檔中
uls[index].appendChild(li);
}
k = i;
return uls[index].offsetHeight;
}
waterFall();
var height;
//無限加載瀑布流方法,核心思想就是
document.onmousewheel = function(){
//文檔的高度 - 文檔的可視高度 < 鼠標的滑動距離 時開始加載圖片
height = document.body.clientHeight - document.documentElement.clientHeight;
if(height <= document.body.scrollTop){
waterFall();
}
}
</script>
</html>
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js實現(xiàn)雙向鏈表互聯(lián)網(wǎng)機頂盒實戰(zhàn)應用實現(xiàn)
js實現(xiàn)雙向鏈表互聯(lián)網(wǎng)機頂盒實戰(zhàn)應用實現(xiàn),需要的朋友可以參考下。2011-10-10
Javascript中定義方法的另類寫法(批量定義js對象的方法)
用了很多的Javascript框架,偶爾也會去看一下框架的源碼,經(jīng)常會看到這樣的代碼。2011-02-02
用JavaScript來美化HTML的select標簽的下拉列表效果
這篇文章主要介紹了用JavaScript來美化HTML的select標簽的下拉列表效果的方法,而且在多瀏覽器下的兼容效果也得到提升,需要的朋友可以參考下2015-11-11

