使用JS實(shí)現(xiàn)圖片展示瀑布流效果的實(shí)例代碼
不知大家有沒(méi)有發(fā)現(xiàn),一般的圖片展示網(wǎng)站都會(huì)使用瀑布流效果,所謂的瀑布流
就是網(wǎng)站內(nèi)的圖片不會(huì)一下子全緩存出來(lái),而是等你滾動(dòng)到一定的距離的時(shí)候,
下面的圖片才會(huì)繼續(xù)緩存,并且圖片也是隨機(jī)出現(xiàn)的,只是寬度一樣,高度并不
一樣,高高低低就像瀑布一樣,所以叫做瀑布流效果。下面我把代碼給大家,大家
隨便下幾張圖片試試。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>瀑布流不重復(fù)</title>
<style>
*{margin: 0px;padding: 0px;list-style: none;}
#box{width: 1000px;margin: 0 auto;}
#box ul{float: left;width: 200px;margin-right: 50px;}
#box img{width: 200px;}
</style>
</head>
<body>
<div id="box">
<ul></ul>
<ul></ul>
<ul></ul>
<ul></ul>
</div>
<script>
var box=document.getElementById('box');
var ul=box.children;
function insert(){
var x=0;
var srcNum=Math.floor(Math.random()*35);//35是35張圖片,可改成任意數(shù),我這里總共是35張圖片。
var newli=document.createElement('li');
newli.innerHTML='<img src="images/'+srcNum+'.png" alt="">';//這是圖片的文件名,要求是統(tǒng)一。
var minH=Math.min(ul[0].clientHeight,ul[1].clientHeight,ul[2].clientHeight,ul[3].clientHeight);
for (var i = 0; i < ul.length; i++) {
if (ul[i].clientHeight==minH) {
x=i;
break;
}
}
ul[x].appendChild(newli);
}
for (var i = 0; i < 20; i++) {
insert();
}
document.onscroll=function(){
var viewH=document.body.clientHeight||document.documentElement.clientHeight;
var winH=document.documentElement.scrollHeight;
var scrollT=document.body.scrollTop||document.documentElement.scrollTop;
if (winH-scrollT-viewH<500) {
for (var i = 0; i < 20; i++) {
insert();
}
}
}
</script>
</body>
</html>
以上這篇使用JS實(shí)現(xiàn)圖片展示瀑布流效果的實(shí)例代碼就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
OpenLayer學(xué)習(xí)之自定義測(cè)量控件
這篇文章主要為大家詳細(xì) 介紹了OpenLayer學(xué)習(xí)之自定義測(cè)量控件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09
淺析document.createDocumentFragment()與js效率
對(duì)于循環(huán)批量操作頁(yè)面的DOM有很大幫助!利用文檔碎片處理,然后一次性append,并且使用原生的javascript語(yǔ)句操作2013-07-07
JS禁止瀏覽器右鍵查看元素或按F12審查元素自動(dòng)關(guān)閉頁(yè)面示例代碼
這篇文章主要給大家介紹了關(guān)于利用Javascript如何禁止瀏覽器右鍵查看元素,或者通過(guò)按F12審查元素,觸犯這兩個(gè)條件會(huì)自動(dòng)并關(guān)閉頁(yè)面的相關(guān)資料,通過(guò)設(shè)置這個(gè)可以防止別人扒下自己的網(wǎng)頁(yè),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-09-09
js使用cookie實(shí)現(xiàn)記住用戶名功能示例
這篇文章主要介紹了js使用cookie實(shí)現(xiàn)記住用戶名功能,涉及javascript操作cookie讀寫及刪除實(shí)現(xiàn)用戶名的保存功能,需要的朋友可以參考下2019-06-06
JavaScript封裝的常用工具類庫(kù)bee.js用法詳解【經(jīng)典類庫(kù)】
這篇文章主要介紹了JavaScript封裝的常用工具類庫(kù)bee.js用法,結(jié)合實(shí)例形式詳細(xì)分析了經(jīng)典類庫(kù)bee.js常見(jiàn)的手機(jī)、身份證、郵箱校驗(yàn),以及字符串操作、四則運(yùn)算、正則驗(yàn)證等相關(guān)操作的封裝與使用技巧,需要的朋友可以參考下2018-09-09
詳解微信小程序input標(biāo)簽正則初體驗(yàn)
這篇文章主要介紹了詳解微信小程序input標(biāo)簽正則初體驗(yàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
js實(shí)現(xiàn)跨域的4種實(shí)用方法原理分析
這篇文章主要分析了js實(shí)現(xiàn)跨域的4種實(shí)用方法原理,主要是使用jsonp跨域,使用window.name來(lái)進(jìn)行跨域,對(duì)這方面感興趣的朋友可以參考一下2015-10-10

