JQuery - DIV для перемещения с прокруткой движения и положения палки вверху и внизу окна
Возможно, уже есть плагин jQuery, который может достичь этого, но я не могу найти, чтобы он выполнял именно то, что мне нужно. Если есть, просто укажите мне учебник, спасибо.
Моя проблема заключается в том, что у меня очень длинный контент страницы, и боковая панель не отображается, когда вы прокручиваетесь в нижней части страницы.
Итак, я бы хотел, чтобы мой #sidebar div придерживался верхней и нижней части окна моего браузера при прокрутке вверх и вниз по странице.
Моя высота боковой панели больше, чем у вашего типичного разрешения экрана, поэтому мне нужно, чтобы нижняя часть боковой панели была прикреплена к нижней части окна браузера, а также к верхней части браузера.
Итак, когда вы начинаете прокручивать вниз, боковая панель будет прокручиваться, как обычно, но когда вы достигнете конца боковой панели, она будет придерживаться и не будет прокручиваться, и когда вы начнете прокручивать вверх, боковая панель будет следовать до вершины боковая панель доходит до браузера, а затем она прилипает. Vice Versa.
Возможно ли это?
Я создал jsfiddle простой дизайн, который является центральным. Я добавил пунктирную границу на боковую панель, чтобы теперь вы вставили боковую панель.
http://jsfiddle.net/motocomdigital/7ey9g/5/
Любой совет, или вы знаете онлайн-учебник или демоверсию, будет самым потрясающим!
UPDATE
Пожалуйста, посмотрите эту попытку @Darek Rossman
http://jsfiddle.net/dKDJz/4/
У него появилась основная идея. Но прокрутка вверх, заставляет его щелкнуть вверх. Мне нужно, чтобы боковая панель была текучей с прокруткой вверх/вниз. Но придерживайтесь либо верхней, либо нижней части окна. Он также не должен фиксироваться, если верхний/нижний колонтитулы находятся в окне просмотра, поэтому он не накладывается.
Спасибо
Ответы
Ответ 1
Смотрите здесь скрипку: http://jsfiddle.net/dKDJz/2/
В принципе, вы просто наблюдаете за событиями прокрутки, и как только смещение прокрутки окна больше, чем верхняя часть боковой панели, он добавляет фиксированный класс на боковую панель и удаляет его при прокрутке назад.
Это было адаптировано из решения, размещенного в CSS-Tricks
Ответ 2
Я обновил jsfiddle http://jsfiddle.net/7ey9g/76/ с моим решением.
Боковая панель должна оставаться на месте сверху, когда окно больше боковой панели и фиксируется снизу, когда боковая панель больше.
Ответ 3
Для этого вам не нужен jQuery или javascript. Все это можно сделать в CSS с помощью position: fixed
.
Измените селектор боковой панели на следующие
#sidebar {
width: 130px;
height: auto;
overflow: hidden;
background: #ffffff;
margin: 0 auto;
clear: right;
padding: 8px;
background: #e5e5e5;
border: 2px dashed red;
position: fixed;
right: 35px;
}
Ответ 4
Это может помочь
http://andrewhenderson.me/tutorial/jquery-sticky-sidebar/
http://designwoop.com/2011/09/tutorial-creating-a-sticky-sidebar-using-jquery/
Ответ 5
К сожалению, мне не хватает репутации, чтобы просто прокомментировать эту ссылку, поэтому здесь вы идете:
http://www.derekallard.com/blog/post/conditionally-sticky-sidebar
Это несколько лет назад, но, основываясь на скриншотах, кажется, он охватывает именно то, что вам нужно.
Ответ 6
Попробуйте здесь http://jsfiddle.net/dKDJz/8/
Я удалил совсем немного кода.
Я сделал то, что, когда вы прокручиваете вниз и доходит до верхней части боковой панели, она прилипает к верхней части окна. Как только вы прокрутите назад до вершины, он будет отклеиваться, если он встретит заголовок, независимо от того, насколько высок заголовок.
Ответ 7
Я играл с тем, что делал Дерек, и я выполнил верх и низ, как вы изначально просили.
Я отредактировал некоторые из css для своих нужд, я уверен, что вы можете просто сохранить свой старый материал и скопировать script.
http://jsfiddle.net/mLdnb/3/
/* NewEdit */
Я заменил то, что я сделал с тем, что у вас есть. Я придумал это:
http://jsfiddle.net/stillb4llin/dKDJz/47/
/* EndEdit */