Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 间隔不工作的jQuery动画_Javascript_Jquery - Fatal编程技术网

Javascript 间隔不工作的jQuery动画

Javascript 间隔不工作的jQuery动画,javascript,jquery,Javascript,Jquery,基本上,我想我的一段代码动画我的菜单出屏幕,因此我的-50px的滚动。当不滚动动画时,返回 这是我目前掌握的代码。但它只在我每次刷新浏览器时起作用 var $menu = $(".sticky-nav"); var topAnim = $menu.css("top"); var scrollStopped; var fadeInCallback = function () { if (typeof scrollStopped != 'undefined') { clea

基本上,我想我的一段代码动画我的菜单出屏幕,因此我的-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

我在您的代码中发现了两个问题

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
请查看下面的链接


请您用setInterval创建一个jsfiddleReplace setTimeout!阅读文档!下面是我的意思:正如您所看到的,菜单向上移动,而不是向下移动。它需要检查每一个卷轴,看看是否会发生这种情况。并在不滚动时设置动画。提前谢谢:差不多了。它现在回来了。但它应该只有在我停止滚动时才会恢复动画。并通过滚动设置屏幕动画。它应该这样做,每一卷这样说