Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.03.2017, 21:52
Интересующийся
Отправить личное сообщение для Vadya Посмотреть профиль Найти все сообщения от Vadya
 
Регистрация: 15.04.2010
Сообщений: 24

Динамичный хеадер и animate по прокрутке
Опять нужна ваша помощь, напоминаю, я слабоват

Хочу сделать анимированную шапку сайта. Чтобы при прокрутке страницы вниз блок шапки "уезжал" частично (на заданное количество пикселей) вверх за пределы окна, а при прокрутке страницы в исходную позицию возвращался обратно.

Для наглядности напишу вопрос в коде


Код:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="header2" style="height:100px;border:solid red 1px;position:fixed;background-color:#fff;">HEADER</div>

<div style="position: absolute; height:3000px;">BODY</div>

jQuery(function(f) {
  var element = f('#header2');
  f(window).scroll(function() {

    //Строка ниже работает правильно, но с другим эффектом. Но тут, конечно, все проще, по условию выбирается имя функции, при скроле вниз/вверх блок плавно исчезает и появляется
    //element['fade'+ (f(this).scrollTop() > 10 ? 'Out': 'In')](500);

    //А мне надо по условию присваивать блоку top в функции animate
    //Пытаюсь как-то так, но ничего не получается:
    animate({top:f(this).scrollTop() > 10 ? '-30px' : '0px'}, 200);
   // я совершенно не понимаю синтаксис, делал много попыток, но не получается
  });
});
Ответить с цитированием
  #2 (permalink)  
Старый 31.03.2017, 22:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Vadya,
строка 10
element.stop().animate({top:f(this).scrollTop() > 10 ? '-30px' : '0px'}, 200);
Ответить с цитированием
  #3 (permalink)  
Старый 31.03.2017, 22:41
Интересующийся
Отправить личное сообщение для Vadya Посмотреть профиль Найти все сообщения от Vadya
 
Регистрация: 15.04.2010
Сообщений: 24

рони, Спасибо, работает. Плюс не разрешает нажать, слишком часто вы помогаете )

Если вдруг с поиска кто заглянет, понадобится этот плагин, чтобы не было рывков в анимации: http://ricostacruz.com/jquery.transit/

Последний раз редактировалось Vadya, 02.04.2017 в 00:43.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прилипающий sidebar дрожит при прокрутке carder Элементы интерфейса 1 24.10.2016 17:19
Jquery. animate. opacity Dimas22 jQuery 1 12.03.2016 12:08
Аналог jQuery(...).animate на чистом JS 2chan Общие вопросы Javascript 3 12.07.2015 19:23
animate() тормозит theo_ jQuery 3 21.10.2011 12:48
jQuery, функция animate(), рекурсия xintrea jQuery 12 03.01.2011 12:33