Фиксированный блок с прокруткой
2014-01-28 Дата: Вторник, 28.01.2014, 19:44 | Сообщение # 1
Рядовой
Группа: Зарегистрированные
Статус: Offline
Здравствуйте, я поставил на сайт блок (отступ 100пх от верха), который при прокрутке вниз, должен прокручиваться вместе со страницей. Код
.floating { width: 200px; } .fixed { position: fixed; top: 10px; }
Код
<script type="text/javascript"> $(function(){ $(window).scroll(function() { var top = $(document).scrollTop(); if (top > 98) $('.floating').addClass('fixed'); else $('.floating').removeClass('fixed'); }); }); </script>
Проблема только в том, что когда прокручиваешь страницу до самого низа, блок должен упираться в футер (200px высотой), а он на него налазит. Не знаю как это исправить. Заранее спасибо за помощь)
2014-01-28 Дата: Вторник, 28.01.2014, 20:07 | Сообщение # 2
Аццкий кодер
Группа: Администраторы
Статус: Unknown
Bodia , Проблема только в том, что когда прокручиваешь страницу до самого низа, блок должен упираться в футер (200px высотой), а он на него налазит
А с чего вы взяли что он должен? Совсем не должен.. Не знаю как это исправить
Изменить скрипт. Узнать высоту документа, вычесть из нее высоту футера и сравнивать высоту скролла с этой этой величиной. Если она больше - делать смещение вверх на разницу высот.
2014-01-28 Дата: Вторник, 28.01.2014, 20:25 | Сообщение # 3
Рядовой
Группа: Зарегистрированные
Статус: Offline
Спасибо за быстрый ответ) Я не так выразился, он то не должен не налазить, просто как я не пытался исправить, у меня не получалось. Извините, но я совсем не понимаю, как это сделать. Высота страницы же резиновая, а высота футера статичная - 200px. А потом это куда добавлять, в css? Я еще пытался как-то скрипт дополнить, Код
var bottom = $(document).scrollTop(); if (bottom > 200) $('.floating').addClass('fixed2');
В fixed2 делал отступ снизу, но ничего не получилось)
Сообщение отредактировал Bodia - Вторник, 28.01.2014, 20:26
2014-01-28 Дата: Вторник, 28.01.2014, 20:40 | Сообщение # 4
Аццкий кодер
Группа: Администраторы
Статус: Unknown
Bodia , А потом это куда добавлять, в css?
Я же написал - изменить скрипт. высота страницы же резиновая, а высота футера статичная - 200px.
Вот по этому сначала и нужно узнать высоту всей страницы - $(document).height(); Вычесть из нее высоту футера (повторяюсь уже) и сравнивать с высотой скролла. Типа: Код
if($(document).height()-200<top){ /* делаем смещение на разницу .. или что-то другое */ }
2014-01-28 Дата: Вторник, 28.01.2014, 20:48 | Сообщение # 5
Рядовой
Группа: Зарегистрированные
Статус: Offline
мне очень неудобно вас так часто беспокоить, но я в скриптах новичок. Проблема в том, что страница с товарами, а товаров неограниченное количество, и они постоянно добавляются. Или же вы имеете ввиду $(document).height(); -как переменное значение? Если высота футера 200px, то как скрипт сделать? Можете помочь? Может платно поможете скрипт доделать?
2014-01-28 Дата: Вторник, 28.01.2014, 20:56 | Сообщение # 6
Аццкий кодер
Группа: Администраторы
Статус: Unknown
Bodia , Или же вы имеете ввиду $(document).height(); -как переменное значение?
$(document).height() - это функция - отдает текущую высоту страницы. Можете помочь? Может платно поможете скрипт доделать?
Ссылку на страницу где установлен данный скрипт. Посмотрю позже.