我的页面有一个粘性导航栏,其“粘性”工作正常,但导航栏的2个主要内部元素*的行为不是乱码。 2个主要内部元素是徽标和滑出式导航栏(点击时激活)。预期的行为如下:
默认情况下,徽标(位于橙色条中心)必须“隐藏” 当用户从顶部向下滚动80px时(或 从文档的顶部向上滚动80px。
一旦用户在80px的顶部滚动,徽标就必须隐藏 该文件。
但是,在滑出式导航栏处于活动状态时,徽标必须永远不可见。然而,当导航栏处于非活动状态时,它必须再次可见。
与徽标不同,导航栏图标必须始终可见,并且
像徽标一样,它必须是粘性的。
在jsfiddle中,所有预期的行为都会播出,但仅限于滚动,而非点击。即。向下滚动超过80px后,徽标将可见(这很好),但在导航栏图标被单击到活动状态时不会隐藏(除非导航元素已处于活动状态)。这个问题在我滚动的那一刻得到了解决,但是在点击这一刻我不想要的时刻就解决了。
我知道为什么会发生这种情况,这是因为虽然我在$(window).scroll(function ()
处理了所有这些条件,但我还没有进入$("#menu-opener").click(function()
因为我无法在那里使用scrollTop(),我也不能成功地组合这两个函数。
那么,我能解决这个问题,是通过组合函数,在clickfunction中调用scrollTop()还是其他任何东西?非常感谢任何帮助。
请注意 :当我说'导航栏的2个主要内部元素'时,实际上我已将徽标和滑出式导航栏放入单独的divs并希望它保持这种方式
答案 0 :(得分:2)
那么为什么你不能在那里使用scrollTop?
这不是预期的行为:
https://jsfiddle.net/91gxLvbb/4/
您可以使用以下方法检查scrolltop:
if($(window).scrollTop() > 80)
答案 1 :(得分:0)
https://jsfiddle.net/91gxLvbb/6/
我添加了#menulogo:
$("#menu-opener").click(function(){
$("#menu-opener, #menu-opener-inner, #menu, #menulogo").toggleClass("active");
});
和css:
#menulogo.active #logoflag{display:none}