Помогите с javascript

Василич#
На сайте с 10.03.2009
Offline
111
561

Здравствуйте, пользуюсь скриптом, который двигает блоки вместе с скроллингом страницы.

Вот его содержание:

<script type="text/javascript">

$(function() {
var box = $('#scroll-block'); // float-fixed block

var top = box.offset().top - parseFloat(box.css('marginTop').replace(/auto/, 0));
$(window).scroll(function(){
var windowpos = $(window).scrollTop();
if(windowpos < top) {
box.css('position', 'static');
} else {
box.css('position', 'fixed');
box.css('top', 0);
box.css('width', '210px');
}
});
});
</script>

Всё работает отлично, но у меня снизу страницы есть футер с содержанием, если блок который я скроллю длинный, он опускается вниз и налаживается на футер. Как сделать чтобы этот "липкий" блок который я скроллю не доходил до определенной зоны (например по высоте с конца страницы) ?

Накрутил вопрос, навертел, по другому изложить суть не могу.

Кто поймёт, спасибо. Кто поможет - еще большее спасибо !

bmw-power.com.ua (https://bmw-power.com.ua)
C
На сайте с 04.02.2005
Offline
277
#1

определить смещение футера

определить высоту scroll блока

если нижняя граница scroll блока достигла футера, то

box.css('top', -высота футера);

Василич#
На сайте с 10.03.2009
Offline
111
#2

Chukcha, прежде всего спасибо за ответ, но не могли бы вы внятнее обьяснить мне, чайнику ? :D

C
На сайте с 04.02.2005
Offline
277
#3

<script type="text/javascript">

$(function() {
var box = $('#scroll-block'); // float-fixed block

var top = box.offset().top - parseFloat(box.css('marginTop').replace(/auto/, 0));

var footer_offset = footer.offset().top;
var footer_height = footer.height();

$(window).scroll(function(){
var windowpos = $(window).scrollTop();
if(windowpos < top) {
box.css('position', 'static');
} else {
box.css('position', 'fixed');
if (windowpos < footer_offset)
box.css('top', -footter_height);
else
box.css('top', 0);
box.css('width', '210px');
}
});
});
</script>

как-то так .... не проверял.

Василич#
На сайте с 10.03.2009
Offline
111
#4

Спасибо большое еще раз за ответ. Не работает ;(

C
На сайте с 04.02.2005
Offline
277
#5

а кто сказал что это будет работать?

Вы получили элемент footer?

Василич#
На сайте с 10.03.2009
Offline
111
#6
Chukcha:
Вы получили элемент footer?

извините пожалуйста за "Идиотские вопросы" но я не совсем понял. Как мне получить элемент footer ?

C
На сайте с 04.02.2005
Offline
277
#7

ну типа

var footer =$('#footer');

Василич#
На сайте с 10.03.2009
Offline
111
#8
Chukcha:
ну типа
var footer =$('#footer');

прежде всего спасибо, что возитесь со мной !

var footer =$('#footer'); - это куда вставлять ? :D

вставил после - var box = $('#scroll-block'); // float-fixed block

ничего не произошло.

Извините пожалуйста за тупизм, не могли бы Вы описать как уже готовый код, если не сложно ? Понимаю, Вы за меня это делать не должны, но всё же)))

C
На сайте с 04.02.2005
Offline
277
#9

покажите куда вставляете, где смотрите,

Я ж сказал, что написал с листа, даже не задумываясь, а будет ли работать

функции взял из существующего кода. Возможно, что нужно взять другие.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий