JQuery анимация с интервалом не работает

0

В принципе, я хочу, чтобы мой фрагмент кода анимировал мое меню с экрана, поэтому мой -50px на прокрутке. и когда не прокручивается анимация назад.

Это код, который у меня есть до сих пор. но он работает только при каждом обновлении моего браузера.

var $menu = $(".sticky-nav");
var topAnim = $menu.css("top");
var scrollStopped;

var fadeInCallback = function () {
    if (typeof scrollStopped != 'undefined') {
        clearInterval(scrollStopped);
    }

    scrollStopped = setTimeout(function () {
        $( ".sticky-nav" ).animate({
   top: "20px"
  }, 300);
});
}

$(window).scroll(function () {
    if (!$menu.is(":animated") && topAnim == "20px") {
                $( ".sticky-nav" ).animate({
   top: "-50px"
  }, 300);

    } else {
        fadeInCallback.call(this);
    }
});

jsfiddle.net/B997S

  • 0
    не могли бы вы создать jsfiddle
  • 0
    Замените setTimeout на setInterval() ! Прочитайте документацию clearInterval() !
Показать ещё 1 комментарий
Теги:

1 ответ

0

Я обнаружил 2 вопроса в вашем коде.

Replaced topAnim in the below line with $menu.css("top") as topAnim always returned a constant.

if (!$menu.is(":animated") && $menu.css("top") == "20px") {

Next issue was

scrollStopped = setInterval(function () { // this is the right format

Пожалуйста, проверьте приведенную ниже ссылку.

http://jsfiddle.net/kapilgopinath/B997S/1/

  • 0
    Почти. Это возвращается сейчас. но это должно оживить только тогда, когда я перестану прокручивать. и анимировать экран с помощью прокрутки. Это должен делать каждый свиток так сказать
  • 0
    Надо смотреть на это

Ещё вопросы

Сообщество Overcoder
Наверх
Меню