关于window的resize事件

时间:2021-12-21 22:00:01

也许你也遇到过这样的问题,或者还没注意到有过这样的问题,如下代码,在窗口发生变化时,会进入死循环:

var _funResize = function(){
console.log('resize...' + Math.random());
}
$(window).bind('resize',_funResize);

是问题,总得研究解决,方案:

var _funResize = function(){
// 先解除绑定
$(window).unbind('resize',_funResize); console.log('resize...' + Math.random()); // 重新绑定
setTimeout(function(){
$(window).bind('resize',_funResize);
},);
}
$(window).bind('resize',_funResize);

但是这种方法只能是触发第一次resize事件,有时我们是想触发最后一次resize事件。可以通过时间来判断

        var rtime = new Date();
var timeout = false;
var delta = ;
$(window).resize(function() {
rtime = new Date();
if (timeout === false) {
timeout = true;
setTimeout(resizeend, delta);
}
}); function resizeend() {
if (new Date() - rtime < delta) {
setTimeout(resizeend, delta);
} else {
timeout = false;
alert($(window).height());
}
}