【发布时间】:2019-04-24 09:39:12
【问题描述】:
我以某种方式组装了 2 个单独的代码(绝对是初学者)并尝试将两个代码块合二为一。
我尝试了以下操作:当我向下滚动时,导航应该被隐藏,当我向上滚动时,它应该再次出现。
附加:只要将鼠标移到它上面(.nav-visibility),导航应该会再次出现并在鼠标移出时再次消失。 -> 但前提是您向下滚动!
问题:当您向下滚动时,导航消失 = 这很棒。但是一旦你再次向上滚动,它就不再出现了。
var zero = 0;
$(document).ready(function() {
$(window).on('scroll', function() {
$('.nav-visibility').css("opacity", "0", $(window).scrollTop() >
zero);
zero = $(window).scrollTop();
})
})
$('nav').mouseover(function() {
$('.nav-visibility').css("opacity", "1");
$('.nav-visibility').css("visibility", "visible");
});
$('nav').mouseout(function() {
$('.nav-visibility').css("opacity", "0");
$('.nav-visibility').css("visibility", "hidden");
});
【问题讨论】:
-
这并不奇怪,因为您的代码只是使导航不可见(不透明度 0)以响应 any 滚动事件。
-
另外我不确定
zero变量在做什么——你在传递给.css的第三个参数中使用它,但我从未使用超过2 个参数,并且不能在 documentation 中找到任何提及第三个参数的内容 -
$('.nav-visibility').css("opacity", $(window).scrollTop() > 0 ? "0" : "1") -
感谢您的回复!在这种情况下,导航仅在您位于网站顶部时出现,这实际上要好得多,但不幸的是,当我将鼠标悬停在导航上一次时,它会永远消失......我猜这两个代码之间存在冲突
-
是的,我正在回复您的“问题:”声明。要包含其他代码,您需要将
visibility代码添加到滚动事件(或从鼠标事件中移除)
标签: javascript jquery scroll combinations visibility