在不刷新页面的情况下更改调整大小的内容?
change content on resize without page refresh?
我正在使用 ShieldUI 的 "Tabs" 并且选项卡位置有一个 属性。我希望当屏幕宽度 >= 768px 时在 "left" 处显示选项卡,当 <= 768px 时在 "top" 处显示选项卡。我来到这里:
var $window = $(window);
var $pane = $('#tabsDiv');
function checkWidth() {
var windowsize = $window.width();
if (windowsize < 768) {
$pane.shieldTabs({
position: "top"
});
} else {
$pane.shieldTabs({
position: "left"
});
}
}
checkWidth();
$(window).resize(checkWidth);
但是当我全宽时 "mobile" 我必须刷新页面才能获得我想要的内容,有没有办法在不刷新页面的情况下做到这一点?
我们对您的代码有一些问题,还有 Shield UI
限制。让我们看看其中的一些:
- 首先,对于我在 official docs, the framework does support component refreshing, but only for new options you'd like to add to your widgets 上检查过的内容。因此,当您尝试更新选项卡的特定功能(如
position
)时,您的代码将不起作用。这意味着最好有一个全局函数(initTabs
,在我们的例子中)来销毁和重建整个选项卡结构;
- 其次,一旦你这样做了,不要在这个全局新函数中声明调整大小函数,以排除递归问题;
- 创建一个全局变量来存储选项卡位置的状态也是一个好主意,因为我们现在有 local/global 个函数要处理。
查看最终工作代码:https://jsfiddle.net/ro0a5bhv/4/
注意:看到我不得不对CSS属性min-height
做一个解决方法,这是切换选项卡视图时始终由框架设置。
我正在使用 ShieldUI 的 "Tabs" 并且选项卡位置有一个 属性。我希望当屏幕宽度 >= 768px 时在 "left" 处显示选项卡,当 <= 768px 时在 "top" 处显示选项卡。我来到这里:
var $window = $(window);
var $pane = $('#tabsDiv');
function checkWidth() {
var windowsize = $window.width();
if (windowsize < 768) {
$pane.shieldTabs({
position: "top"
});
} else {
$pane.shieldTabs({
position: "left"
});
}
}
checkWidth();
$(window).resize(checkWidth);
但是当我全宽时 "mobile" 我必须刷新页面才能获得我想要的内容,有没有办法在不刷新页面的情况下做到这一点?
我们对您的代码有一些问题,还有 Shield UI
限制。让我们看看其中的一些:
- 首先,对于我在 official docs, the framework does support component refreshing, but only for new options you'd like to add to your widgets 上检查过的内容。因此,当您尝试更新选项卡的特定功能(如
position
)时,您的代码将不起作用。这意味着最好有一个全局函数(initTabs
,在我们的例子中)来销毁和重建整个选项卡结构; - 其次,一旦你这样做了,不要在这个全局新函数中声明调整大小函数,以排除递归问题;
- 创建一个全局变量来存储选项卡位置的状态也是一个好主意,因为我们现在有 local/global 个函数要处理。
查看最终工作代码:https://jsfiddle.net/ro0a5bhv/4/
注意:看到我不得不对CSS属性min-height
做一个解决方法,这是切换选项卡视图时始终由框架设置。