JQuery浮动菜单栏,滚动位置和延迟
JQuery floating menu bar, scroll position and delay
我正在制作一个菜单栏,我对JQuery相当陌生。我希望菜单栏在向下滚动时延迟,但在向上滚动时,我希望它紧贴在浏览器窗口的顶部,没有延迟。现在,两侧的延迟相同,当滚动到顶部时,没有延迟。
我希望有人能帮助我:)
$(document).ready(function(){
var speed = 1000;
var speedtop = 0;
var menu = $('nav#header');
var offset = menu.offset().top;
var menuStartPos = menu.position().top;
var top_offset = 0;
updateFloatingMenu(); //we don't have this just yet
$(window).scroll(function(){
updateFloatingMenu();
});
function updateFloatingMenu(){
var scrollAmount = $(document).scrollTop();
var newPosition = menuStartPos + scrollAmount;
if(scrollAmount > offset){
var topPos = (newPosition-offset) + top_offset;
menu.stop().animate({top: topPos}, speed);
}else{
menu.stop().animate({top: menuStartPos}, speedtop);
}
};
});
将类添加到 css 中:
#header.fixed {
position:fixed;
top: 0 !important; /* important, to override inline style-tag */
}
向上滚动时将此类添加到菜单中,以始终将其固定在页面顶部
var offset = 0;
function updateFloatingMenu(){
var scrollAmount = $(document).scrollTop();
if (scrollAmount > offset){
menu.stop().removeClass('fixed').animate({'top': scrollAmount}, speed);
} else {
menu.stop().addClass('fixed')
menu.css('top', scrollAmount); // Set top here so it's in the right place when reverting scroll
}
offset = scrollAmount; // Update current offset
}
相关文章:
- jquery试图按名称获取按钮位置
- 我可以获得相对于被点击元素的确切点击位置吗
- 谷歌地图固定位置覆盖
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 可以简化嵌套的延迟Q Promises解析吗
- 循环比赛位置算法
- es6 相当于下划线查找位置
- jQuery循环在特定位置暂停
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 自定义函数中的光标位置
- 安卓平台上的QWebView HTML5地理位置
- onclick函数需要双击,因为类分配延迟
- DIV并排,位置不正确
- JavaScript窗口位置延迟
- JQuery浮动菜单栏,滚动位置和延迟
- 延迟表单提交,直到检索到位置
- 记住滑块位置和延迟加载 - bxslider
- javascript地理位置不工作,除非我包括警报显示/延迟脚本
- JS位置加载后的功能-添加延迟时间
- 延迟视窗位置上按钮的不透明度