Javascript 间隔不工作的jQuery动画
基本上,我想我的一段代码动画我的菜单出屏幕,因此我的-50px的滚动。当不滚动动画时,返回 这是我目前掌握的代码。但它只在我每次刷新浏览器时起作用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
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!阅读文档!下面是我的意思:正如您所看到的,菜单向上移动,而不是向下移动。它需要检查每一个卷轴,看看是否会发生这种情况。并在不滚动时设置动画。提前谢谢:差不多了。它现在回来了。但它应该只有在我停止滚动时才会恢复动画。并通过滚动设置屏幕动画。它应该这样做,每一卷这样说