基于JavaScript實(shí)現(xiàn)無(wú)限加載瀑布流
本文實(shí)例為大家分享了JS實(shí)現(xiàn)無(wú)限加載瀑布流展示的具體代碼,供大家參考,具體內(nèi)容如下
1.在外層的div中,插入4個(gè)ul,ul左浮動(dòng)
2.每次在創(chuàng)建節(jié)點(diǎn)之后,插入節(jié)點(diǎn)之前,要獲取每個(gè)ul的高度,找到最小的高度,然后將新創(chuàng)建的li節(jié)點(diǎn)插入該ul中
3.當(dāng)文檔的高度 - 文檔的可視高度 <= 鼠標(biāo)的滑動(dòng)距離時(shí) 開(kāi)始繼續(xù)創(chuàng)建節(jié)點(diǎn)
代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>瀑布流效果動(dòng)態(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">
//隨機(jī)[m,n]之間的整數(shù)
function randomNumber(m, n) {
return Math.floor(Math.random() * (n - m + 1) + m);
}
//隨機(jī)顏色
function randomColor() {
return "rgb(" + randomNumber(0, 255) + "," + randomNumber(0, 255) + "," + randomNumber(0, 255) + ")";
}
//獲取當(dāng)前的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");
//隨機(jī)顏色
li.style.backgroundColor = randomColor();
//隨機(jī)高度
li.style.height = randomNumber(150, 500) + "px";
//手動(dòng)轉(zhuǎn)換為字符串
li.innerHTML = i + 1 + "";
//插入到對(duì)應(yīng)的ul中
//判斷哪個(gè)ul的高度低,該次創(chuàng)建的li就插入到此ul中
var index = 0; //記錄下標(biāo)
for (var j = 0; j < uls.length; j++) {
if (uls[j].offsetHeight < uls[index].offsetHeight) {
index = j;
}
}
//將元素節(jié)點(diǎn)插入文檔中
uls[index].appendChild(li);
}
k = i;
return uls[index].offsetHeight;
}
waterFall();
var height;
//無(wú)限加載瀑布流方法,核心思想就是
document.onmousewheel = function(){
//文檔的高度 - 文檔的可視高度 < 鼠標(biāo)的滑動(dòng)距離 時(shí)開(kāi)始加載圖片
height = document.body.clientHeight - document.documentElement.clientHeight;
if(height <= document.body.scrollTop){
waterFall();
}
}
</script>
</html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使一個(gè)函數(shù)作為另外一個(gè)函數(shù)的參數(shù)來(lái)運(yùn)行的javascript代碼
使一個(gè)函數(shù)作為另外一個(gè)函數(shù)的參數(shù)來(lái)運(yùn)行的javascript代碼...2007-08-08
JavaScript實(shí)現(xiàn)讀取上傳視頻文件的時(shí)長(zhǎng)和第一幀畫(huà)面過(guò)程講解
當(dāng)我們做一個(gè)后臺(tái)系統(tǒng)的音視頻管理模塊時(shí),通常要限制文件的大小和類(lèi)型,這篇文章主要介紹了JavaScript實(shí)現(xiàn)讀取上傳視頻文件的時(shí)長(zhǎng)和第一幀畫(huà)面過(guò)程,需要詳細(xì)了解實(shí)現(xiàn)方法可以參考下文2023-05-05
JavaScript的History API使搜索引擎抓取AJAX內(nèi)容
這篇文章主要介紹了JavaScript的History API使搜索引擎抓取AJAX內(nèi)容 的相關(guān)資料,需要的朋友可以參考下2015-12-12

