В принципе, я хочу, чтобы мой фрагмент кода анимировал мое меню с экрана, поэтому мой -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
Я обнаружил 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
Пожалуйста, проверьте приведенную ниже ссылку.
setTimeout
наsetInterval()
! Прочитайте документациюclearInterval()
!