@100R

.resize() and .scroll()?

Как переопределить position при изменении окна браузера? Понимаю, что нужно через .resize(), но как уже только не пробивал - не получается.

var $block = $('nav'),
    position = $block.offset().top;

	$(window).scroll(function(){
		if ($(window).scrollTop() > position) {
			$block.addClass('fixed');
		} else {
			$block.removeClass('fixed');
		}
	});
  • Вопрос задан
  • 495 просмотров
Решения вопроса 1
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
var $block = $('nav'),
var position = $block.offset().top;

$(window).on('resize', function() {
  position = $block.offset().top
});

$(window).scroll(function(){
    if ($(window).scrollTop() > position) {
      $block.addClass('fixed');
    } else {
      $block.removeClass('fixed');
    }
});


Только нужно сделать чуток изменений в коде. У вас сейчас
<nav></nav>
Добавьте обертку
<div.nav-wrapper> <nav></nav> </div>
В скрипте позицию считывайте у враппера, а фиксед делайте наву.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@kirill-93
$(window).on('resize', function() {
...
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы