2013-02-08 6 views
-3

Мне нравится менять направление прокрутки в противоположном направлении для определенного столбца. Я попытался найти google, но я не нашел никакого решения. К примеру, возьмите это ...Как изменить направление прокрутки

jFiddle: http://jsfiddle.net/yLHeC/1/

Есть три колонки,

левый, центральный, правый. Высота каждого столбца - 5000 пикселей. Центральная колонка имеет отрицательный запас 4500 пикселей. Теперь, когда пользователь прокручивает, слева и справа должен быть как обычно, но центр должен прокручиваться снизу вверх. Надеюсь, вы поняли.

Пример сайт: http://www.ballantyne.it/

.left{ 
height:5000px; 
} 

.center{ 
height:5000px; 
margin-top:-4500px; 
} 

.right{ 
height:5000px; 
} 
+0

Как вы можете прокручивать невидимое содержимое? – Morpheus

+0

Проверьте этот сайт, например, http://www.ballantyne.it/ – Ashok

+0

Вы уверены, что это хорошая идея с точки зрения юзабилити? Пользователи ожидают, что прокрутка будет вести себя определенным образом, обычно это хорошая идея изменить это. Прокрутка на этом сайте образца делает меня тошнотворной. – cimmanon

ответ

1

вы должны добавить контейнер для центральной колонки, установите его переполнение скрытых, высоты до высоты окна, а затем с помощью $(window).scroll() событий добавить $(document).height() - $(window).scrollTop() к центральному колонке - это должно работать для вас

EDIT: вот код http://jsfiddle.net/yLHeC/30/ и объяснение:

$(document).ready(function(){ 
    var CONSTANT_OFFSET = -200; // starting position 
    $(window).scroll(function(){ 
     $('.center').css('margin-top', CONSTANT_OFFSET + $(this).scrollTop()*2 + 'px'); 
    }).scroll(); 
}); 
+0

Спасибо. Оно работает. – Ashok

1

В моем примере позиция прокрутки заблокирована на высоту соседнего столбца, поэтому количество движения - это вычисление отношения и, следовательно, точное.

http://jsfiddle.net/kuxi/xNSTb/

$('.right').scrollTop(
    ($('.right .content').height() - $(window).height()) 
    * 
    (1 - $(window).scrollTop()/($('.left .content').height() - $(window).height())) 
); 
Смежные вопросы