Проблема с кодом javascript
Привет ребята, я не могу понять одного:
имеется рабочий код скрипта: $(function () { var a = $("#news_content,#otsivi_content"); var c = a.offset(), marginTop = parseFloat(a.css('marginTop'))||0, d = Math.max($(a[0]).outerHeight(!0), $(a[1]).outerHeight(!0)), e = $("#contant_bottom").parents('tr').offset(); if(c.top+d + 10 >= e.top+marginTop ) return; a.css({position:'fixed'}); $(window).scroll(function () { var b = $(this).scrollTop(); if(c.top > b && b < e.top - d) a.css({top : (c.top - b - marginTop)+'px' }) else if (b < e.top - d + marginTop) a.css({top: -marginTop +'px'}) else a.css({top: (e.top - d - b) +'px'}) }) }); В нем два блока (#news_content, #otsivi_content) при прокрутке страницы прилипают к верху экрана и идут до нижнего блока (#contant_bottom), затем останавливаются. Вопрос: Скажите, как сделать так, чтобы прилипал не к самому верху, а смещено допустим на 100 пикселей от верха. Я голову ломаю не могу понять. Я не сам писал этот скрипт. Извините, если написал не туда, просто очень нужна помощь!:help: :help: |
javamen, попробуйте так
marginTop = (parseFloat(a.css('marginTop'))||0) + 100, |
Меняю по вашему примеру код, перестает работать скрипт вообще):(
|
javamen,
ссылку в личку скиньте. или +100 замените на -100 |
я изменил параметры
else if (b < e.top - d + marginTop) a.css({top: -marginTop +'px'}) else a.css({top: (e.top - d - b) +'px'}) на else if (b < e.top - d + marginTop) a.css({top: -marginTop +100 +'px'}) else a.css({top: (e.top - d - b) + 100 +'px'}) Получилось, но не совсем то что мне нужно. Теперь при прокручивании страницы до нужного мне блока как только он касается верха экрана сразу прыгает на +100 пикселей вниз и закрепляется. А мне нужно что бы касался не верха экрана а +100 пикселей от него. |
javamen,
$(function () { var a = $("#news_content,#otsivi_content"); var c = a.offset(), marginTop = (parseFloat(a.css('marginTop'))||0), d = Math.max($(a[0]).outerHeight(!0), $(a[1]).outerHeight(!0)), e = $("#contant_bottom").parents('tr').offset(); if(c.top+d + 10 >= e.top+marginTop ) return; a.css({position:'fixed'}); $(window).scroll(function () { var b = $(this).scrollTop(); if(c.top - 100 > b && b < e.top - d) a.css({top : (c.top - b - marginTop ) +'px' }) else if (b < e.top - d + marginTop - 100) a.css({top: -marginTop + 100 +'px'}) else a.css({top: (e.top - d - b) +'px'}) }) }); |
Спасибо тебе Рони огромное, все заработало)))
|
Цитата:
|
Часовой пояс GMT +3, время: 09:00. |