anmast,
:blink: |
рони,
при заужении браузера блок не останавливается и лезет до бесконечности. как в этом случае поступить? |
sergiocharm,
:) ещё вариант
$(function() {
var elem = $("#fixed"), h = elem.offset().top ;
$(window).scroll(function(){
var top = $(this).scrollTop();
elem.css( {'top': top> h ? 20 : '', 'position': top > h ? 'fixed' : ''})})
});
|
Спасибо! Поступил проще, убрал при маленьком разрешении
|
Вот пример, как сделать плавающий блок ;)
|
Цитата:
:-? |
Jeff,
и не очень хорошая реализация. Если после загрузки страницы изменится смещение до "плавающего" блока (подгрузится что-то выше него, отобразится картинка, изменится ориентация экрана...) блок будет фиксироваться в неправильном положении скролла. |
Цитата:
|
sergiocharm,
попробуйте так
$(function() {
var offset = $("#fixed").offset();
var topPadding = 20,
bottomPadding = 210;
$(window).scroll(function() {
var max = $(document).height() - ($(window).height() - bottomPadding),
scroll = $(window).scrollTop();
if (scroll > offset.top && scroll < max) {
if ($(document).height() - bottomPadding > scroll + $("#fixed").height()) $("#fixed").stop().animate({
marginTop: scroll - offset.top + topPadding
})
} else $("#fixed").stop().animate({
marginTop: 0
})
})
});
|
|
| Часовой пояс GMT +3, время: 17:21. |