このフィドルで見ることができるループ/無限のウェブサイトをスクロールするとき、私は助け/正しい方向へのポイント/またはちらつき/ジャンプの解決策を探しています。
ジャンプを引き起こしていると思われるものは次のとおりです。
" $(window).scrollTop(half_way - child_height);
"、そしてChrome WindowsのscrollTopのバグである可能性もありますが、現時点ではすべてのブラウザで発生しています。
「」を削除すると- child_height
、ちらつきはなくなりますが、ページが正しくスクロールしなくなります。これは、このフィドルで確認できます。
また、最初のスクロールで、右側の列が3つのボックスでジャンプします。これも''のためです。これは、「 」half_way
を指定することで修正できます。bottom: -600px;
完全なコード:
http://jsfiddle.net/djsbaker/j3d8r/1/
var num_children = $('#up-left').children().length;
var child_height = $('#up-left').height() / num_children;
var half_way = num_children * child_height / 2;
$(window).scrollTop(half_way);
function crisscross() {
$('#up-left').css('bottom', '-' + window.scrollY + 'px');
$('#down-right').css('bottom', '-' + window.scrollY + 'px');
var firstLeft = $('#up-left').children().first();
var lastLeft = $('#up-left').children().last();
var lastRight = $('#down-right').children().last();
var firstRight = $('#down-right').children().first();
if (window.scrollY > half_way ) {
$(window).scrollTop(half_way - child_height);
lastRight.appendTo('#up-left');
firstLeft.prependTo('#down-right');
} else if (window.scrollY < half_way - child_height) {
$(window).scrollTop(half_way);
lastLeft.appendTo('#down-right');
firstRight.prependTo('#up-left');
}
}
$(window).scroll(crisscross);