我有以下代码
var isSmallScreen = $(".container-inner").width() <= 570;
$(window).resize(function() {
isSmallScreen = $(".container-inner").width() <= 570;
});
console.log(isSmallScreen);
当我调整窗口大小时,我没有得到isSmallScreen。
我不确定这是我的方法,但我希望能够用
做事if (isSmallScreen) {
// hide element
}
答案 0 :(得分:0)
当resize事件发生时,只执行resize
句柄,之后的控制台语句不会被执行,所有处理resize参数的代码都需要在回调中添加
<强>更新强>
如果您想根据resize事件执行某些操作,解决方案是使用自定义事件
jQuery(function($){
var flag;
$(window).resize(function() {
var width = $(window).width();
if(width <= 570){
if(flag === true || flag == undefined){
$(window).trigger('smallview', {
width: width
});
flag = false;
}
} else {
if(flag == false || flag == undefined){
$(window).trigger('normalview', {
width: width
});
flag = true;
}
}
}).resize();
})
然后
jQuery(function ($) {
$(window).on('smallview normalview', function (e) {
if (e.type == 'smallview') {
console.log('smallview', 'do something')
} else {
console.log('normalview', 'do something')
}
});
})
演示:Fiddle
答案 1 :(得分:0)
这里的其他建议只有一点点变化。您可以将isSmallScreen
移动到一个函数中,并在需要时调用它。这(在我看来)比你上面的东西更整洁......
function isSmallScreen() {
return $(".container-inner").width() <= 570;
}
function smallScreen() {
// do stuff here because the screen is small
}
$(window).resize(function() {
if (isSmallScreen()) {
console.log("isSmallScreen");
smallScreen();
}
}).resize();
答案 2 :(得分:0)
您可以使用window.resize()
$(window).resize(function() {
var isScreenSmaller;
if($(".container-inner").width() <= 570){
isScreenSmaller = true;
}
else
{
isScreenSmaller = false;
}
alert(isScreenSmaller);
}).resize();
答案 3 :(得分:0)
您必须使用此代码我非常确定Demo here
$(window).resize(function() {
var isSmallScreen = $(".container-inner").css("width") <= 570;
console.log(isSmallScreen);
})