window.resize事件并没有做我认为的事情。
我认为它只在物理窗口/视图端口改变大小时触发(例如,用户在浏览器窗口中命中最大化),但如果我更改文档大小,引入滚动条也会触发它。
有没有什么方法可以区分这两个方面:查看端口调整大小,文档调整大小而无需编写精心设计的黑客文件?
答案 0 :(得分:0)
没有接受者?这里是黑客(未经测试 - 但想法是正确的)
function viewPortResize(fn, context){
context = context || window;
var $window = $(window);
var winWidth = $window.width();
var winHeight = $window.height();
return function(e){
var oldW = winWidth;
var oldH = winHeight;
winWidth = $window.width();
winHeight = $window.height();
if (winWidth != oldW || winHeight != oldH){
fn.apply(context, [e]);
}
}
}
//use:
$(window).resize(viewPortResize(function(e){
alert("this only happens when viewport is resized!");
});