【发布时间】:2013-12-24 20:56:36
【问题描述】:
我正在使用 twitter bootstrap 3 我需要调整一些特定于特定屏幕尺寸的用户 UI 特定值。
我需要根据屏幕分辨率设置该值,如果屏幕分辨率发生更改,我还需要更改该值。
这是我的代码
function SetOffsets()
{
var navbarOffet = 80;
var pageMenuNavOffset = 350;
if ($(window).width() <= 768) {
navbarOffet = 80;
pageMenuNavOffset = 350;
}
else if ($(window).width() > 768) {
navbarOffet = 600;
pageMenuNavOffset = 100;
}
$('.mainHeader').affix({
offset: {
top: navbarOffet
}
});
$('.mainNav').onePageNav({
currentClass: 'active',
scrollOffset: pageMenuNavOffset
});
}
为了实现我的目标,我在文档 ready 和窗口 resize 上调用该函数
但由于某种原因,$('.mainHeader').affix 和 $('.mainNav').onePageNav 不会被新值覆盖。结果.affix 和.onePageNav 只是被调用了初始值(文档ready 值)。
$(window).resize(function() {
SetOffsets();
});
$(document).ready(function() {
SetOffsets();
});
因此,如果我以>768 的初始分辨率<=768 加载页面-一切正常。但是当分辨率改变时,新值不会应用于.affix 和.onePageNav 调用。我清楚地可以在调试器上看到 navbarOffet 和 pageMenuNavOffset 在屏幕调整大小时发生了变化。
我该如何解决这个问题?
【问题讨论】:
-
我不确定,但
offset.top属性不应该是一个函数吗?
标签: jquery html css twitter-bootstrap