如何更新滚动侧菜单上的窗口调整大小
How to update scrolling side menu on window resize
请看看我正在开发的网站:http://coccolejarvis.com/
当你到达某个点时,你会看到右手菜单棒。这可以很好地节省设计中的空白,但问题是,如果你调整浏览器窗口的大小,侧边栏的宽度不会改变(它必须有一个固定的宽度才能工作)。
我如何使它自动计算的宽度边栏在窗口调整大小?我现在使用下面的代码:
$(window).load(function() {
var sideBar = $('.side-nav'),
sideBarSideOffset = $('#page-main').offset().left,
mainColHeight = $('.main-col').height(),
sideBarHeight = sideBar.height(),
sideBarWidth = sideBar.width(),
footerOffset = $('footer').offset().top,
contentOffset = $('#page-main').offset().top,
yOffset,
winHeight = $(window).height(),
currentLocationHeight = $("#current-location").height() + 40;
if (mainColHeight > sideBarHeight) {
sideBar.addClass('absolute-position');
sideBar.css({"width": sideBarWidth});
function fixSideBar() {
yOffset = yOffset || $("#current-location").offset().top;
var winScroll = $(window).scrollTop();
if (winScroll >= yOffset-winHeight +currentLocationHeight && winScroll<footerOffset-winHeight) {
sideBar.removeClass('bottom').addClass('fixed');
sideBar.css({"right": sideBarSideOffset});
} else if (winScroll >= (footerOffset-winHeight)) {
sideBar.removeClass('fixed').addClass('bottom');
sideBar.css({"right": 0});
} else {
sideBar.removeClass('fixed bottom');
sideBar.css({"right": 0});
}
}
fixSideBar();
$(window).scroll(function(){fixSideBar()});
}
});
而不是:
$(window).load(function() {
命名函数,像这样:
function sizeSidebar() {
则在load和resize时调用函数:
$(window).on('load resize', function() {
sideSidebar();
});
相关文章:
- JQuery窗口调整大小;不要开火
- 如何获得一个进度元素,它被设置为在窗口调整大小时调整大小
- 了解窗口调整大小事件与 scope.$apply 与函数$watch
- 如何在窗口调整大小时调整iframe的大小
- highcharts饼图窗口调整大小问题
- 在窗口调整大小时调整tinymce实例的大小
- 如何使用浏览器窗口调整网页大小
- 同位素包装中项目之间的发际线间隙在窗口调整大小时
- 在窗口调整大小时删除属性
- 如何在窗口调整大小时禁用和启用滚动魔术
- JQuery 在窗口调整大小时动画的延迟很大
- 媒体查询和 JavaScript 窗口调整不同的宽度
- 在浏览器窗口调整大小时切换滑过不可见
- 窗口调整大小 以精确的大小执行操作
- 如何通过窗口调整图像大小.调整大小功能
- 窗口.调整大小到不起作用
- jQuery 砌体 - 在窗口调整大小事件中限制为最大宽度
- 使用窗口调整表格和文本的大小
- 测试窗口.调整带有茉莉花的夹具的大小
- 侦听窗口调整大小事件以关闭响应式 (Sidr) 菜单