Заморозка блока!
Всем привет, нужно сделать одну не очень сложную штуку, но я что то запутался.
Написал такой вот код
$(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:22. |