ここに解決策があります:http://jsfiddle.net/zewkG/14/
$('.corner-stamp').click( function() {
$container.isotope( 'destroy' );
grid('.item.odd');
$container.isotope('remove', $('.item:not(.odd)') )
$container.isotope('updateSortData', $('.item.odd'));
});
編集:
正解: http://jsfiddle.net/zewkG/16/
問題はここにありました:
getSortData : {
fitOrder : function( $item ) {
var index = $item.index();
そのはず:
getSortData : {
fitOrder : function( $item ) {
var index = $item.index(selector);
-1
そして、このようにして、ソートロジックにあった醜いものを取り除くことができます:
if ( $item.hasClass('large')) {
if(index>10){
order = Math.floor((index-1) / (columns))*(columns) + 1.5;
}else{
order = Math.floor((index-1) / (columns-1))*(columns-1) + .5;
}
}
になる
if ( $item.hasClass('large')) {
if(index>10){
order = Math.floor((index) / (columns))*(columns) + 1.5;
}else{
order = Math.floor((index) / (columns-1))*(columns-1) + .5;
}
}
その理由は
- すべてのボックスがある場合、box1 のインデックスは 0、box2 のインデックスは 1、box3 のインデックスは 2...
- 奇数の場合、box1 のインデックスは 0、box3 のインデックスは 1、box5 のインデックスは 2...
そのため、並べ替えロジックを維持するために、ボックスのテキストとそのインデックスの間の対応を解除します。
ついに、
$('.corner-stamp').click( function() {
$container.isotope( 'destroy' );
grid('.item.odd');
$('.item:not(.odd)').css('display','none');
});
そうしない$('.item:not(.odd)').css('display','none')
と、アニメーション化された奇数ボックスの下に偶数ボックスが表示されるためです。
編集2:
http://jsfiddle.net/zewkG/8/にバグがあったことを覚えていますか: ボックス番号 13,17,21 (行の最後) をクリックすると、代わりに次の行に移動しましたその行の先頭。http://jsfiddle.net/zewkG/9/で修正しましたか?
しかしその後、回帰が発生したようで、固定された並べ替えロジックが古いものに置き換えられました。
だから私はあなたのhttp://jsfiddle.net/zewkG/19/をhttp://jsfiddle.net/zewkG/20/に修正しました
固定の並べ替えロジックは次のとおりです。
if ($item.hasClass('large')) {
if(index>10){
order = Math.floor((index-1) / (columns))*(columns) + 1.5;
}else{
order = Math.floor((index) / (columns-1))*(columns-1) + .5;
}
}else {
order = index + 1;
}