Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.12.2013, 12:54
Аспирант
Отправить личное сообщение для sss2019 Посмотреть профиль Найти все сообщения от sss2019
 
Регистрация: 15.06.2010
Сообщений: 41

Помогите сделать умную прокрутку
Здравствуйте. У меня на сайте есть боковая панель, которая прокручивается вместе со всем сайтом.

Мне нужно сделать так, чтобы боковая панель прокручивалась только если не влезает в размер экране по вертикали, а во всех остальных случаях была статической.

То есть например высота экрана 600 пикселей. А Высота панели 700 пикселей, так вот в этом случае при прокрутке вниз она должна подняться вверх только на 100 пикселей и замереть, независимо от того что основной контент прокручивается далее.

Подскажите как сделать, не обязательно конкретный код, хоть подскажите какие способы обычно используют, и какие функции где смотреть.

Структура такая
<body>
<div id="sidebar></div>
<div id="content></div>
</body>
Ответить с цитированием
  #2 (permalink)  
Старый 21.12.2013, 14:04
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

oveflow: auto;

+ возможно Media Queries пригодится.
Ответить с цитированием
  #3 (permalink)  
Старый 21.12.2013, 17:59
Аспирант
Отправить личное сообщение для sss2019 Посмотреть профиль Найти все сообщения от sss2019
 
Регистрация: 15.06.2010
Сообщений: 41

Нет не подходит. Бар должен прокруичиваться вместе с контентом, но когда прокрутиться до конца, то замирает, независимо от того что контент крутится дальше
Ответить с цитированием
  #4 (permalink)  
Старый 21.12.2013, 18:45
Аспирант
Отправить личное сообщение для sss2019 Посмотреть профиль Найти все сообщения от sss2019
 
Регистрация: 15.06.2010
Сообщений: 41

Вот вроде наше что то подобное http://sticky01.blogspot.ru/2013/09/4.html
Только там правый блок останавливается перед нижним, а мне нужно чтобы останавливался когда достигнет своего конца при прокрутке.

Попробую разобраться
Ответить с цитированием
  #5 (permalink)  
Старый 22.12.2013, 13:36
Интересующийся
Отправить личное сообщение для titan1993 Посмотреть профиль Найти все сообщения от titan1993
 
Регистрация: 04.11.2013
Сообщений: 14

Если я правильно понял, то боковой панельке можно поставить position:fixed, тогда она не будет прокручиваться вообще, а как вариант можно сделать так:

var scroll=document.documentElement.scrollTop;
if(scroll>254){ //это условие заставляет двигаться элемент
$('#bannerc').css({
'top': function(){return scroll-254}
});
}else{ // сбрасывает стили от первого и второго условия
$('#bannerc').css({'top':'', 'bottom':''})
}
if(scroll>$(window).height()){ //необходимое тебе условие, только придется поправить scroll на то выражение, кот. тебе нужно
var y = $('#footer').height()+$('#copyright-content').height();
$('#bannerc').css({
'top':'',
'bottom': -$('#bannerc').height()//лучше всего задать у панели bottom
})
}
p.s. JS - очень мутная фигня, почитай про jQuery, он намного удачней
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите сделать так чтоб по клику открывалось и по клику же закрывалось Maxsl_89 Элементы интерфейса 1 25.10.2013 16:11
Помогите сделать список из выборки shaltay jQuery 15 03.04.2011 17:54
Jcarousel. Как сделать непрерывную прокрутку изображений? Akimserg jQuery 3 01.04.2011 15:03
Гуру ! помогите сделать начало слайдшоу c рандомной картинки Nekojiru Общие вопросы Javascript 0 22.07.2009 19:28
помогите сделать начало слайдшоу c рандомной картинки Nekojiru Ваши сайты и скрипты 0 20.07.2009 19:50