У меня есть сайт с длинным списком твитов, и по мере того, как вы прокручиваете правый столбец, следует за вами вниз, показывая статистику на твитах. (См. Это в действии на http://www.grapevinegame.com. Нажмите «запомнить», затем «пропустите», чтобы перейти на страницу списка. Работает в Safari и Chrome).
Я использую jQuery для обновления верхнего поля в правом столбце, увеличивая его при прокрутке вниз. Похоже, что он отлично работает в браузерах на основе webkit, но в Firefox не работает. Вот код, правый элемент столбца - это div с id = "distance".
// Listen for scroll function
$(window).scroll(function () {
// Calculating the position of the scrollbar
var doc = $("body"),
scrollPosition = $("body").scrollTop(),
pageSize = $("body").height(),
windowSize = $(window).height(),
fullScroll = (pageSize) - windowSize;
percentageScrolled = (scrollPosition / fullScroll);
var entries = $("#whispers-list > li").length;
// Set position of distance counter
$('div#distance').css('margin-top', ($("#whispers-list").height()+$("#latest-whisper").height()+33)*percentageScrolled);
// Update distance counter
$('#distance-travelled').text(Math.round(distanceTravelled*(1-percentageScrolled)));
$('#whispers-list li').each(function(index) {
//highlight adjacent whispers
if ($('#whispers-list li:nth-child('+(index+1)+')').offset().top >= $('#distance').offset().top && $('#whispers-list li:nth-child('+(index+1)+')').offset().top <= $('#distance').offset().top + $('#distance').height()) {
// alert("yup");
$('#whispers-list li:nth-child('+(index+1)+') ul').fadeTo(1, 1);
} else {
$('#whispers-list li:nth-child('+(index+1)+') ul').fadeTo(1, 0.5);
}
});
});
Ценю любую помощь или совет!