무한가재-jsonp-폭포류 예
32
// 1、 。load
//2、 ajax
function isVisible($node) {
var scrollH=$(window).scrollTop(),
winH=$(window).height(),
nodeOffset=$node.offset().top;
if ((scrollH+winH)>=nodeOffset){
return true
}
else {return false}
}
var perPageCount=9,
curPage=1;
function getAndPlaceData() {
if (isVisible($(".load"))){
$.ajax({
url:"http://platform.sina.com.cn/slide/album_tech",
dataType: 'jsonp',
jsonp:"jsoncallback",
data:{
app_key:"1271687855",
num: perPageCount,
page:curPage
}
}).done(function (ret) {
if (ret && ret.status && ret.status.code === "0"){
placeData(ret.data);
}else{console.log("get ajax data error1")}
})
.fail(function () {
console.log("get ajax data error2")
})
}
}
//3、 append ul ,
function placeData(nodelist) {
var $nodes=renderData(nodelist);
var arr=[];
$nodes.find("img").each(function () {
var defer = $.Deferred();
$(this).load(function () {
defer.resolve()
});
arr.push(defer)
});
$.when.apply(null,arr).done(function () {
console.log("all pic loaded");
waterFall($nodes)
})
}
function renderData(data) {
var str="",
$nodes;
for (var i=0;i<data.length;i++){
str+='<li class="content">';
str+='<a href="'+data[i].url+'">[ ……(2)]</a>';
str+='<h4>'+data[i].short_name+'</h4>';
str+='<p>'+data[i].short_intro+'</p>';
str+='</li>';
}
$nodes=$(str);
$(".ct").append($nodes);
return $nodes;
}
var widthNum=parseInt($("#wrap").width()/$(".content").outerWidth(true)),
allHeight=[];
for (var i=0;i<widthNum;i++){
allHeight.push(0)
}
function waterFall($nodes) {
$($nodes).each(function () {
var $cur=$(this),
indx=0,
minAllHeight=allHeight[0];
for (var j=0;j<allHeight.length;j++){
if (allHeight[j]<minAllHeight){
minAllHeight=allHeight[j];
indx=j;
}
}
$cur.css({
"left":indx*$cur.outerWidth(true),
"top":minAllHeight
});
allHeight[indx]=minAllHeight+$cur.outerHeight(true);
$(".ct").height(Math.max.apply(null,allHeight));
})
}
getAndPlaceData();
$(window).on("scroll",function () {
getAndPlaceData();
})
2. 미리 보기 주소:
https://github.com/have-not-BUG/task/blob/master/renwu/renwu32/renwu32.html
**본고의 판권은 본인에게 귀속됩니다. 이 계좌는 이미 압수되었으니 전재하려면 출처를 밝혀 주십시오.감사합니다!*
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.