Заморозка блока!
Всем привет, нужно сделать одну не очень сложную штуку, но я что то запутался.
Написал такой вот код $(document).ready(function(){ var scrollTop = window.pageYOffset || document.documentElement.scrollTop; var setmenu = document.getElementById('text').offsetTop; $(document).scroll(function(){ if(scrollTop > setmenu){ //alert(1); $("#menu").toggleClass("menufix"); } else if(scrolTop < setmenu){} } ) когда я докручиваю до элемента с id menu, он замирает, и фиксируется, но если я назад вернусь выше, он станет на своём месте. Помогите, с js дружу пока не слишком круто)) но стараюсь учится. Как я понимаю, нужно записать значение положения в переменную при загрузке, и с ним всё время сравнивать. |
|
Вилка в пюре http://jsfiddle.net/XFaMV/1/
|
Не знаю на сколько умно так делать, но в общем заработало оно так)) по принципу первой ссылки сделал, но немножечко исправил.
Вот, держите, и правьте, где можно было сделать легче?? и вообще, как вместо document.getElementById('getFixed').offsetTop; написать в jquery? $(document).('#getFixed').offsetTop;не так уж точно)) В общем смотрите моё(частично) чудо jQuery(function($) { var setmenu = document.getElementById('getFixed').offsetTop; fixDiv(setmenu); function fixDiv() { var $cache = $('#getFixed'); if ($(window).scrollTop() > setmenu) $cache.css({'position': 'fixed', 'top': '10px'}); else $cache.css({'position': 'relative', 'top': 'auto'}); } $(window).scroll(fixDiv); fixDiv(); }); |
спасибо вам большое)
|
Цитата:
Хоть запрототипируйся но когда вы передаете {'position': 'fixed', 'top': '10px'} скрипт должен профтыкать ключи объекта в имена атрибутов, а значения ключей в значения атрибутов. И вот это var $cache = $('#getFixed'); оно действительно? Типа жиквери отложил в своей бд что был запрошен такой элемент #getFixed и искать его больше не надо, а надо просто взять по ключу getFixed и выдать ссылку взад. Верится с трудом. Следовательно var $cache = $('#getFixed') - то есть поиск элемента в дереве - выполняется каждый раз когда сгорает событие scroll. Насколько я понимаю это синтаксис $(window) полегче, поскольку передается явно готовая ссылка, но которую тоже еще надо отпарсить в том же махровом геттере. Оценить ваше творение в целом лично не могу. Это не ява-скрипт. |
хм, но работает... скажите что править, буду учиться
|
Часовой пояс GMT +3, время: 02:02. |