jQuery 调整大小和滚动
jQuery Resize and Scroll
我正在使用jQuery在我正在处理的单页纸上创建一些效果。我有两个单独的导航栏。一个绝对(#initial)位于页面顶部,而另一个固定(#fixed_nav)到屏幕顶部。固定的样式有两种不同的样式,具体取决于屏幕宽度。
我试图做的是在用户向下滚动到 #initial 顶部后,#fixed_nav 向下滑动到视图中并坚持,直到您向上滚动并再次看到 #initial。我还希望它在调整窗口大小时以响应方式切换,尽管这可能不常见。单独地,我可以让他们两个工作,但我尝试了几种不同的方法来让它们一起工作,我只得到了一个或另一个。我希望有人能用这个为我指出正确的方向。以下是我现在对脚本的这一部分的内容:
//Nav Switcher
if ($(window).width >= 940) {
$(document).scroll(function () {
if ($(window).scrollTop() >= 60) {
$('#fixed_nav').slideDown();
} else {
$('#fixed_nav').slideUp();
}
});
}
//Responsive
$(document).resize(function () {
if ($(window).width() < 940) {
$('#fixed_nav').show();
$('#initial').hide();
}
});
响应式部分有效,但我不再#fixed_nav
以宽度或 940+ 向下滑动。
首先,与其使用 javascript 来做响应式任务,不如使用 css3 媒体查询,性能结果会好得多。
/* CSS */
@media only screen and (max-width: 939px) {
#initial {display:none}
}
@media only screen and (min-width: 940px) {
#fixed_nav {display:none}
}
其次,请注意,仅当窗口宽度最初为>= 940 时,才绑定调整大小的处理程序函数。无论如何,您要做的是绑定函数,然后仅在该条件成立时才让它运行:
// Javascript
$(document).scroll(function () {
if ($(window).width >= 940) {
if ($(window).scrollTop() >= 60) {
$('#fixed_nav').slideDown();
} else {
$('#fixed_nav').slideUp();
}
}
});
相关文章:
- 可调整滚动条大小
- 可滚动元素,如何在调整大小时更改顶部偏移量
- 调整平滑滚动代码
- 具有无限水平滚动的流体可调整大小图像(修订版 2)
- Javascript滚动并调整窗口大小
- 调整菜单大小,尝试滚动时关闭手机
- 如何使窗口在调整大小到1000px以下时水平滚动
- 在RubyonRails中使用Javascript来调整模式对话框中的滚动条
- 如何在滚动/调整大小时保持背景图像覆盖屏幕
- 将滚动位置调整到最近的容器
- 如何在窗口调整大小时禁用和启用滚动魔术
- jQuery 调整大小和滚动
- IMG在滚动时调整大小
- 如何使用谷歌地图调整滚动时的叠加层
- 在视差滚动中实时调整大小
- 如何实现这种自动调整到您的视口的滚动效果
- jQuery 不调整滚动位置
- 移动与桌面滚动/调整大小问题
- 通过滚动调整容器位置
- 滚动调整在非ie浏览器加载图像(JavaScript/DOM)后不能正常工作;定时问题w/innerHTML