在循环/无限网站上滚动时,我正在寻找帮助/指向正确方向/或闪烁/跳跃的解决方案,这可以在这个 fiddle中看到。
似乎导致跳跃的原因是:
" $(window).scrollTop(half_way - child_height);
",也可能是 Chrome windows scrollTop 错误,但目前所有浏览器都在发生这种情况。
如果我删除“ - child_height
”,则不再闪烁,但页面不再正确滚动,这可以在this fiddle中看到。
此外,在第一个滚动条上,右侧的列向上跳了三个框 - 也是因为 ' 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);