亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

JQuery實現瀑布流

 

這里需要jquery-2.1.1.min.js文件,請自行下載,圖片請自行下載

首先,創建一個.html文件<!DOCTYPE html>

<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="js/jquery-2.1.1.min.js" type="text/JAVAscript"></script>
<script src="js/App.js" type="text/JavaScript"></script>
<link rel="stylesheet" href="css/style.css" type="text/css"/>
</head>
<body>
<div id="container">
<div class="box">
<div class="content">
<img src="img/1.jpg"/>
</div>
</div>
<div class="box">
<div class="content">
<img src="img/2.jpg"/>
</div>
</div>
<div class="box">
<div class="content">
<img src="img/3.jpg"/>
</div>
</div>
<div class="box">
<div class="content">
<img src="img/4.jpg"/>
</div>
</div>
<div class="box">
<div class="content">
<img src="img/5.jpg"/>
</div>
</div>
<div class="box">
<div class="content">
<img src="img/6.jpg"/>
</div>
</div>
<div class="box">
<div class="content">
<img src="img/7.jpg"/>
</div>
</div>
<div class="box">
<div class="content">
<img src="img/8.jpg"/>
</div>
</div>
<div class="box">
<div class="content">
<img src="img/9.jpg"/>
</div>
</div>
<div class="box">
<div class="content">
<img src="img/10.jpg"/>
</div>
</div>
</div>
</body>
</html>寫它的樣式:style.css,創建一個css文件夾,把這個css樣式放入到此文件夾里面*{margin: 0;padding: 0;
}
.box{position: relative;float: left;
}
.content{padding: 10px;border: 1px solid #ccc;box-shadow: 0 0 5px #ccc;/*添加邊框陰影*/border-radius: 5px;/*圓角邊框為5像素*/
JQuery實現瀑布流

 

目前是這種效果,這里就需要考慮,怎么讓第二行的第一個圖片接著第一行里面圖片高度最小的圖片下面
創建一個app.js文件

$(function(){
$(window).on("load", function () {imgLocation();
});});
function imgLocation(){
var box=$(".box");
var boxWidth=box.eq(0).width();//獲取圖片的寬度var num= Math.floor($(window).width()/boxWidth);//確定一排能擺放幾個
var boxArry=[];//存儲所有box的高度
box.each(function(index,value){
var boxHeight=box.eq(index).height();//盒子的高度
if(index<num)
{boxArry[index]=boxHeight;//往數組添加
}else{
var minboxHeigh=Math.min.apply(null,boxArry);//獲取最小盒子的高度
var minboxIndex= $.inArray(minboxHeigh,boxArry);//獲取盒子的位置
$(value).css({//設置第二行的第一張圖片在第一行高度最小的那張圖片下面
"position":"absolute",
"top":minboxHeigh,
"left":box.eq(minboxIndex).position().left});
boxArry[minboxIndex]+=box.eq(index).height();//記錄第一行的最小高度和第二行第一個圖片的高度}
});}

現在實現瀑布流的效果了

JQuery實現瀑布流

 

接下來就要實現滾動跳下來,實現自動加載圖片的效果
如下是完整的app.js 內容:

$(function(){
$(window).on("load", function () {
imgLocation();
var dataImg={"data":[{"src":"1.jpg"},{"src":"2.jpg"},{"src":"3.jpg"},{"src":"4.jpg"},{"src":"5.jpg"},
{"src":"6.jpg"},{"src":"7.jpg"},{"src":"8.jpg"},{"src":"9.jpg"},{"src":"10.jpg"}]};
window.onscroll=function(){
if(scollside())
{
$.each(dataImg.data,function(index,value){
//動態創建div
//動態創建內容div
//動態創建img,將src動態解析添加到內容層里面
var box=$("<div>").addClass("box").appendTo($("#container"));
var content=$("<div>").addClass("content").appendTo(box);
$("<img>").attr("src","./img/"+$(value).attr("src")).appendTo(content);
});
imgLocation();//再次調用一下瀑布流效果,不然不會出現瀑布流效果
}
};
});
});
function scollside(){
var box=$(".box");
/*box.last().get(0).offsetTop 盒子最后一個對象距頂端的距離*/
/*Math.floor(box.last().height/2) 最后圖片的高度的一半*/
var lastboxHeigh=box.last().get(0).offsetTop+Math.floor(box.last().height()/2);
var documentHeight=$(document).width();//當前容器的高度
var scollHeight=$(window).scrollTop();//
return (lastboxHeigh<documentHeight+scollHeight)?true:false;//如果當前滾動高度和容器高度大于最后盒子的高度則加載圖片
}
function imgLocation(){
var box=$(".box");
var boxWidth=box.eq(0).width();//獲取圖片的寬度
var num= Math.floor($(window).width()/boxWidth);//確定一排能擺放幾個
var boxArry=[];//存儲所有box的高度
box.each(function(index,value){
var boxHeight=box.eq(index).height();//盒子的高度
if(index<num)
{
boxArry[index]=boxHeight;//往數組添加
}else
{
var minboxHeigh=Math.min.apply(null,boxArry);//獲取最小盒子的高度
var minboxIndex= $.inArray(minboxHeigh,boxArry);//獲取盒子的位置
$(value).css({//設置第二行的第一張圖片在第一行高度最小的那張圖片下面
"position":"absolute",
"top":minboxHeigh,
"left":box.eq(minboxIndex).position().left
});
boxArry[minboxIndex]+=box.eq(index).height();//記錄第一行的最小高度和第二行第一個圖片的高度
}
});
}

說明一下,我這里的圖片都經過處理寬度設置成了一樣,如果沒有設置的話,那么在css樣式里面還要設置寬度固定,高度自適應即可!

分享到:
標簽:瀑布 JQuery
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定