【发布时间】:2016-01-02 11:12:43
【问题描述】:
我正在使用的代码
var height = $(window).height();
if (height>=768) {
//change class for example.
}
else {
//change class back.
}
上面的代码可以很好地检测视口高度并按应有的方式应用类更改,但是如果我调整浏览器窗口的大小,我还希望此脚本能够检测何时发生这种情况并基本上重新运行该函数更新的高度值。怎么样?
我尝试了以下在 StackOverflow 上找到的解决方案。我能够成功地实现它们,但是,我仍然必须刷新站点才能使函数应用类更改。它没有在浏览器调整大小时这样做。
这是一个:
var width = $(window).width();
$(window).resize(function(){
if($(this).width() != width){
width = $(this).width();
console.log(width);
}
});
这是我尝试过的另一个解决方案,仍然是同样的问题。我必须在新的视口设置中刷新浏览器才能识别差异。
var height = $(window).height();
window.addEventListener('resize', setWindowSize);
function setWindowSize() {
if($(this).height() != height){
height = $(this).height();
console.log(height);
}
}
if (height <= 859 ) {
$(".stats-events-2").removeClass("show-set").addClass("hide-set");
}
else {
$(".stats-events-2").removeClass("hide-set").addClass("show-set");
}
所以我正在尝试做的是检测视口中的每次更改,每次更改时在脚本中设置它,因此如果视图高度低于某个点,则分配某个类,反之亦然。任何帮助非常感谢。
【问题讨论】:
-
为什么需要设置为变量?如果它低于您的阈值,请调用您的函数来执行您需要的任何操作。顺便说一句,你一定需要添加一个类吗?如果您只想更改样式,则可以通过媒体查询来完成这些事情。
-
对于这种情况,我需要改变高度,媒体查询不是只对宽度有用吗?
-
jsfiddle.net/fbju5n4g调整结果窗口的高度。
-
哇,好的。我会试一试身高媒体查询。
-
大家都知道,CSS 媒体查询也可以隐藏或显示 div。谢谢塔普拉!