Позволяет сделать основной сборки до:
<div id="content">Content to be scrolled as Wrapper </div>
<div id="mydiv" class="fixed"> Div that should be fixed </div>
<div id="end"> Everything after the fixed div </div>
Мы быстро исправить DIV в нижней части с помощью класса .fixed
, так что мы можем использовать .addClass('fixed')
и .removeClass('fixed')
для переключения некоторые атрибуты css.
.fixed {
position: fixed;
bottom: 0;
}
Так что эта .scrollTop
функция, которая позволяет прокручивать определенное количество пикселей от верха до низа. Это уже то, что вам нужно. Хитрость заключается в том, чтобы узнать, сколько пикселей от вершины фиксированного элемента должно начинаться с прокрутки с содержимым.
позволяет сделать некоторые JQuery, чтобы узнать:
// Create function to add/remove Class if .scrollTop
$.fn.followTo = function (pos) {
var $this = this,
$window = $(window);
$window.scroll(function (e) {
if ($window.scrollTop() < pos) {
$this.addClass('fixed');
} else {
$this.removeClass('fixed');
}
});
};
var $height_content = $('#content').outerHeight(); //get height of content
var $height_div = $('#mydiv').outerHeight(); //get height of fixed div
var $height_viewport = $(window).height(); //get height of viewport
var $fixed_till = ($height_content + $height_div - $height_viewport);
// Use function created above like so:
// $('selector').followTo(/* height from top in px */);
$('#mydiv').followTo($fixed_till);
Проверьте DEMO ON JSFIDDLE
создать ** ** скрипку, что вы ожидаете, и после некоторой 'html' тоже! –
Попробуйте посмотреть здесь: https://css-tricks.com/scroll-fix-content/ –
Я отредактировал свой ответ довольно много раз, но на этот раз не должно быть ошибок и рабочего примера jsfiddle. Его довольно сложно объяснить математику, которую мы делаем короткими словами. Не стесняйтесь спрашивать, если что-то не так ясно, как должно быть! –