Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.02.2014, 22:41
Профессор
Отправить личное сообщение для xTODx Посмотреть профиль Найти все сообщения от xTODx
 
Регистрация: 04.02.2014
Сообщений: 167

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

Последний раз редактировалось xTODx, 04.02.2014 в 22:45.
Ответить с цитированием
  #2 (permalink)  
Старый 05.02.2014, 11:06
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

типа того http://stackoverflow.com/questions/8...-scrolls-to-it
Ответить с цитированием
  #3 (permalink)  
Старый 05.02.2014, 11:52
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Вилка в пюре http://jsfiddle.net/XFaMV/1/
Ответить с цитированием
  #4 (permalink)  
Старый 05.02.2014, 23:27
Профессор
Отправить личное сообщение для xTODx Посмотреть профиль Найти все сообщения от xTODx
 
Регистрация: 04.02.2014
Сообщений: 167

Не знаю на сколько умно так делать, но в общем заработало оно так)) по принципу первой ссылки сделал, но немножечко исправил.
Вот, держите, и правьте, где можно было сделать легче??
и вообще, как вместо
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();
});
Ответить с цитированием
  #5 (permalink)  
Старый 05.02.2014, 23:27
Профессор
Отправить личное сообщение для xTODx Посмотреть профиль Найти все сообщения от xTODx
 
Регистрация: 04.02.2014
Сообщений: 167

спасибо вам большое)
Ответить с цитированием
  #6 (permalink)  
Старый 06.02.2014, 17:23
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от xTODx
написать в jquery?
$(document).('#getFixed').offsetTop;
Хоть раз посмотрите устройство жиклера чтобы понять _что_ быстрее в принципе.

Хоть запрототипируйся но когда вы передаете {'position': 'fixed', 'top': '10px'} скрипт должен профтыкать ключи объекта в имена атрибутов, а значения ключей в значения атрибутов.

И вот это

var $cache = $('#getFixed');

оно действительно?

Типа жиквери отложил в своей бд что был запрошен такой элемент #getFixed и искать его больше не надо, а надо просто взять по ключу getFixed и выдать ссылку взад.

Верится с трудом. Следовательно var $cache = $('#getFixed') - то есть поиск элемента в дереве - выполняется каждый раз когда сгорает событие scroll.

Насколько я понимаю это синтаксис $(window) полегче, поскольку передается явно готовая ссылка, но которую тоже еще надо отпарсить в том же махровом геттере.

Оценить ваше творение в целом лично не могу. Это не ява-скрипт.
Ответить с цитированием
  #7 (permalink)  
Старый 12.02.2014, 00:20
Профессор
Отправить личное сообщение для xTODx Посмотреть профиль Найти все сообщения от xTODx
 
Регистрация: 04.02.2014
Сообщений: 167

хм, но работает... скажите что править, буду учиться
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Плавное раскрытие и сворачивание блока StyLLeR jQuery 6 07.07.2014 16:00
Движение по элементам блока без перезапуска функции выпадающеего меню. tutelaris Элементы интерфейса 4 26.04.2013 09:15
вычисление и фиксация ширины блока konstantin-mn jQuery 2 27.08.2012 11:42
слайд панели tadjik1 Элементы интерфейса 22 02.04.2012 17:13
Два блока div разъезжаются при скроллинге окна браузера. call007 jQuery 0 03.04.2011 16:21