我有一个网站,我需要在屏幕上显示一个菜单。我的理想解决方案是在浏览器到达菜单时通过jquery向下滑动菜单。
我在How can I have a sliding menu div that doesn't move unless the page is scrolled down past a certain point找到了这个网站上的确切问题和解决方案,但是解决方案的最后部分,关于if的部分(偏移丢失了!
这个丢失的代码将解决我的问题,如果有人可以填写此代码的缺失空白,我将非常感谢!
答案 0 :(得分:1)
我认为它会像
if(offset < menu_top_limit) {
offset = menu_top_limit;
}
$("#menuID").animate({top:offset},{duration:500,queue:false});
你可能想玩动画有点因为我从here得到了答案。
我认为你找到的问题的答案来自于从这个地方拿走它并在代码中添加了一个在页面顶部留下空白的人......正确的网络开发在行动!!
Lemme知道你是否还需要了解所有这些内容的更多信息......希望它有效!
答案 1 :(得分:0)
谢谢,Daddywoodland,我不太确定你的修复工作是否有效,但它确实帮助我达到了我想要的目标。
我改变了两件事: 1)将代码添加到脚本底部和
2)将menuYloc = null更改为menuYloc = -400;
当浏览器窗口的顶部到达时,这会产生滚动启动的效果,并且-400似乎将框保持在我的特定页面的顶部。代码如下:
var name = "#leftmenu";
var menu_top_limit = 0;
var menu_top_margin = 0;
var menu_shift_duration = 500;
var menuYloc = -400;
///////////////////////////////////
$(window).scroll(function()
{
// Calculate the top offset, adding a limit
offset = menuYloc + $(document).scrollTop() + menu_top_margin;
if(offset < menu_top_limit) {
offset = menu_top_limit;
}
$(name).animate({top:offset},{duration:500,queue:false});
});