http://jsfiddle.net/XMdYw/7/の下にjQueryがあります
var elements = '';
var ELEMENT_COUNT_PER_PAGE = 301;
var page = 1;
for (var i = (ELEMENT_COUNT_PER_PAGE * (page - 1)); i <= (ELEMENT_COUNT_PER_PAGE * page); i++) {
elements+= '<div class="imgwrap"><img src="lq/'+i+'.jpg" class="image-'+i+'"/></div>'
}
$('.imagecontainer').append(elements).masonry();
それに関する問題は、画像が重なっていることです。ページを更新した後、修正されますが、サイトが完全に再割り当てされると、再び問題が発生します。
部分的に動作します
部分的に機能すると言う理由は、imgにdiv.imgwrapラップがないためです。
var elements = '';
var ELEMENT_COUNT_PER_PAGE = 301;
var page = 1;
for (var i = (ELEMENT_COUNT_PER_PAGE * (page - 1)); i <= (ELEMENT_COUNT_PER_PAGE * page); i++) {
elements+= '<img src="lq/'+i+'.jpg" class="image-'+i+'"/>'
}
var $img = $(elements);
$img.on('load', function() {
$('.imagecontainer').masonry('reload');
});
$('.imagecontainer').append(elements).masonry();
以下を試してみました
var elements = '';
var ELEMENT_COUNT_PER_PAGE = 301;
var page = 1;
for (var i = (ELEMENT_COUNT_PER_PAGE * (page - 1)); i <= (ELEMENT_COUNT_PER_PAGE * page); i++) {
elements+= '<div class="imgwrap"><img src="lq/'+i+'.jpg" class="image-'+i+'"/></div>'
if(i==301){
$('.imagecontainer').masonry('reload');
}
}
$('.imagecontainer').append(elements).masonry();
そして私も試しました
var elements = '';
var ELEMENT_COUNT_PER_PAGE = 301;
var page = 1;
for (var i = (ELEMENT_COUNT_PER_PAGE * (page - 1)); i <= (ELEMENT_COUNT_PER_PAGE * page); i++) {
elements+= '<div class="imgwrap"><img src="lq/'+i+'.jpg" class="image-'+i+'"/></div>'
}
var $imgs = $(elements);
$('.imagecontainer').append($imgs).masonry( 'appended', $imgs );
それで
追加が完了したときにキャッチして.masonry();
、divラップを持つimgで適用する方法はありますか?
さらに
window.setTimeoutも解決策ですが、2秒以内に画像が読み込まれず、重複する画像を長時間見ても魅力的ではない場合があります。