亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

我這樣一加載更多的時候,圖片就全飛了。請大神指教

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>帶有分散效果的瀑布流</title>

<style type="text/css">

? ? *{padding: 0;margin:0;}

? ? #main{

? ? ? ? position: relative;

? ? }

? ? .pin{

? ? ? ? padding: 15px 0 0 15px;

? ? ? ? float:left;

? ? ? ? 15+20+163+2

? ? }

? ? .box{

? ? ? ? padding: 10px;

? ? ? ? border:1px solid #ccc;

? ? ? ? box-shadow: 0 0 6px #ccc;

? ? ? ? border-radius: 5px;

? ? }

? ? .box img{

? ? ? ? width:163px;

? ? ? ? height:auto;

? ? }

</style>?


</head>?

<body>

<div id="main">

? ? <div class="pin">

? ? ? ? <div class="box">

? ? ? ? ? ? <img src="http://pic1.win4000.com/pic/9/ce/afc71195997.jpg"/>

? ? ? ? </div>

? ? </div>

? ? <div class="pin">

? ? ? ? <div class="box">

? ? ? ? ? ? <img src="http://pic1.win4000.com/pic/9/ce/afc71195999.jpg"/>

? ? ? ? </div>

? ? </div>

? ? <div class="pin">

? ? ? ? <div class="box">

? ? ? ? ? ? <img src="http://pic1.win4000.com/pic/7/20/0bdb1197547.jpg"/>

? ? ? ? </div>

? ? </div>

? ? <div class="pin">

? ? ? ? <div class="box">

? ? ? ? ? ? <img src="http://pic1.win4000.com/pic/7/20/0bdb1197548.jpg"/>

? ? ? ? </div>

? ? </div>

? ? <div class="pin">

? ? ? ? <div class="box">

? ? ? ? ? ? <img src="http://pic1.win4000.com/pic/7/20/0bdb1197549.jpg"/>

? ? ? ? </div>

? ? </div>

? ? <div class="pin">

? ? ? ? <div class="box">

? ? ? ? ? ? <img src="http://pic1.win4000.com/pic/7/20/0bdb1197550.jpg"/>

? ? ? ? </div>

? ? </div>

? ? <div class="pin">

? ? ? ? <div class="box">

? ? ? ? ? ? <img src="http://pic1.win4000.com/pic/7/20/0bdb1197551.jpg"/>

? ? ? ? </div>

? ? </div>

? ? <div class="pin">

? ? ? ? <div class="box">

? ? ? ? ? ? <img src="http://pic1.win4000.com/pic/7/20/0bdb1197557.jpg"/>

? ? ? ? </div>

? ? </div>

? ? <div class="pin">

? ? ? ? <div class="box">

? ? ? ? ? ? <img src="http://pic1.win4000.com/pic/7/20/0bdb1197565.jpg"/>

? ? ? ? </div>

? ? </div>

? ? <div class="pin">

? ? ? ? <div class="box">

? ? ? ? ? ? <img src="http://pic1.win4000.com/pic/7/20/0bdb1197567.jpg"/>

? ? ? ? </div>

? ? </div>

? ? <div class="pin">

? ? ? ? <div class="box">

? ? ? ? ? ? <img src="http://pic1.win4000.com/pic/7/20/0bdb1197568.jpg"/>

? ? ? ? </div>

? ? </div>

? ? <div class="pin">

? ? ? ? <div class="box">

? ? ? ? ? ? <img src="http://pic1.win4000.com/pic/7/20/0bdb1197570.jpg"/>

? ? ? ? </div>

? ? </div>

? ? <div class="pin">

? ? ? ? <div class="box">

? ? ? ? ? ? <img src="http://pic1.win4000.com/pic/7/20/0bdb1197571.jpg"/>

? ? ? ? </div>

? ? </div>

? ? <div class="pin">

? ? ? ? <div class="box">

? ? ? ? ? ? <img src="http://pic1.win4000.com/pic/7/20/0bdb1197572.jpg"/>

? ? ? ? </div>

? ? </div>

? ? <div class="pin">

? ? ? ? <div class="box">

? ? ? ? ? ? <img src="http://pic1.win4000.com/pic/7/20/0bdb1197573.jpg"/>

? ? ? ? </div>

? ? </div>

? ? <div class="pin">

? ? ? ? <div class="box">

? ? ? ? ? ? <img src="http://pic1.win4000.com/pic/7/20/0bdb1197574.jpg"/>

? ? ? ? </div>

? ? </div>

? ? <div class="pin">

? ? ? ? <div class="box">

? ? ? ? ? ? <img src="http://pic1.win4000.com/pic/7/20/0bdb1197575.jpg"/>

? ? ? ? </div>?

? ? </div>

? ? <div class="pin">

? ? ? ? <div class="box">

? ? ? ? ? ? <img src="http://pic1.win4000.com/pic/7/20/0bdb1197576.jpg"/>

? ? ? ? </div>

? ? </div>

? ? <div class="pin">

? ? ? ? <div class="box">

? ? ? ? ? ? <img src="http://pic1.win4000.com/pic/4/4b/c6461197588.jpg"/>

? ? ? ? </div>

? ? </div>

? ? <div class="pin">

? ? ? ? <div class="box">

? ? ? ? ? ? <img src="http://pic1.win4000.com/pic/4/4b/c6461197591.jpg"/>

? ? ? ? </div>

? ? </div>

? ? <div class="pin">

? ? ? ? <div class="box">

? ? ? ? ? ? <img src="http://pic1.win4000.com/pic/4/4b/c6461197592.jpg"/>

? ? ? ? </div>

? ? </div>

</div>

</body>

<script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>

<script>

$( window ).on( "load", function(){

? ?// 調用waterfall函數

? ?waterfall();

? ??var json={'data':[{'src':'http://pic1.win4000.com/pic/4/4b/c6461197591.jpg'},{'src':'http://pic1.win4000.com/pic/4/4b/c6461197588.jpg'},{'src':'http://pic1.win4000.com/pic/4/4b/c6461197592.jpg'},{'src':'http://pic1.win4000.com/pic/7/20/0bdb1197574.jpg'},{'src':'http://pic1.win4000.com/pic/7/20/0bdb1197575.jpg'},{'src':'http://pic1.win4000.com/pic/7/20/0bdb1197576.jpg'},{'src':'http://pic1.win4000.com/pic/7/20/0bdb1197573.jpg'}]};

? ? window.onscroll=function(){

? ? ?

// 拖動滾動條時

? ? ? ?if(checkscrollside()){

? ? ? ? console.log(checkscrollside());

? ? ? ? ? ? $(json.data).each(function(index,value){

? ? ? ? ? ? ? ? //創建節點

? ? ? ? ? ? ? ? // $("<div class='box'><div class='pic'><img src='images/"+value.src+"'></div></div>").appendTo("#main");

? ? ? ? ? ? ? ? var $img = $("<img>").attr("src",'images/'+value.src);

? ? ? ? ? ? ? ? var $box = $("<div>").addClass("box").append($img);

? ? ? ? ? ? ? ? var $pin = $("<div>").addClass("pin").append($box);


? ? ? ? ? ? ? ? $("#main").append($pin);

? ? ? ? ? ? });

? ? ? ?}

? ? ? ?// waterfall();

? ? ?}

});


var hArr=[];

function waterfall(){

? ? ?// 計算及定位數據塊顯示分散效果

? ? ?var $main = $("#main");

? ? ?var $pins = $("#main>.pin");

? ? ?//設置外包裹main的寬度

? ? ?var w = $pins.eq(0).outerWidth();

? ? ?var cols = Math.floor($(window).width()/w);

? ? ?$main.width(cols*w).css("margin","0 auto");


? ? ?$pins.each(function(index,value){

? ? ? ? //初始化數組

? ? ? ? if(index<cols){

? ? ? ? ? ? hArr.push(0);

? ? ? ? }


? ? ? ? //分散效果

? ? ? ? $(value).css({

? ? ? ? ? ? 'position':'absolute',

? ? ? ? ? ? 'left':200+Math.random()*300+'px',

? ? ? ? ? ? 'top':200+Math.random()*300+'px'

? ? ? ? });

? ? ?});


? ? ?//定位盒子

? ? ?show($pins,w,0);

}


function show(pins,width,i){

? ? var $ele = pins.eq(i);

? ? var minH = Math.min.apply(null,hArr);

? ? var minIndex = $.inArray(minH,hArr);

? ? $ele.animate({

? ? ? ? left:minIndex*width+'px',

? ? ? ? top:hArr[minIndex]+'px'

? ? },300,function(){

? ? ? ? hArr[minIndex]+=$ele.outerHeight();

? ? ? ? i++;

? ? ? ? show(pins,width,i);

? ? });

}


function checkscrollside(){

? // 檢測是否具備了加載數據塊的條件

// 檢測是否具備了加載數據塊的條件

? //獲取最后一個盒子

? ? var $lastBox = $("#main>.pin:last");

? ? var offsetTop = $lastBox.offset().top+$lastBox.outerHeight()-10;

? ? var scrollTop = $(document).scrollTop()+$(window).height();

? ? // console.log(scrollTop+"------"+offsetTop);

? ? return scrollTop>offsetTop?true:false;

}


</script>

</html>


正在回答

2 回答

圖片全飛出去的原因是你又把所有的pin遍歷了一遍并重新排列,要解決的話需要加個判斷,或者重寫個函數waterfall2

目的是只排列json中的圖片,例如這樣寫:

var?num=0;
function?waterfall2(){
????var?$main?=?$("#main");
?????var?$pins?=?$("#main>.pin");
?????//設置外包裹main的寬度
?????var?w?=?$pins.eq(0).outerWidth();
?????var?cols?=?Math.floor($(window).width()/w);
?????$main.width(cols*w).css("margin","0?auto");

?????$pins.each(function(index,value){
????????//初始化數組
????????if(index>num-1){
????????????//分散效果
????????????$(value).css({
????????????????'position':'absolute',
????????????????'left':200+Math.random()*300+'px',
????????????????'top':200+Math.random()*300+'px'
????????????});
????????}

????????
?????});
????
?????//定位盒子
?????showL($pins,w,num);
?????num=$pins.length;
}

num是為了儲存原來圖片的個數,所以在waterfall()函數中也應聲明num=$pins.length;

這樣就能解決了,不過這樣的體驗并不好,不如不加動畫直接渲染出來.而且你這個代碼的bug還是太多,比如在圖片排列時如果滑動滾動條就會有多組json圖片堆疊,

0 回復 有任何疑惑可以回復我~
#1

Edge2J 提問者

感謝女神老師
2017-07-20 回復 有任何疑惑可以回復我~
0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

我這樣一加載更多的時候,圖片就全飛了。請大神指教

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號