JQuery在ie下window.resize的麻烦

flash网站要实现大小控制,往往需要做一个flash跟着窗口尺寸自动放大缩小的功能。

我采用的方法是: 放一个容器div承载,里面放着100%宽高的flash js监听网页窗口大小,然后重设容器div的大小 flash里监听舞台变化,相应视图改变位置等

用JQuery在监听窗口大小的环节出现状况。

代码:

$(document).ready(function(){
WSWFobj(“100%”, “100%”, ‘swf/SiteLoader.swf’, [‘allowScriptAccess’], [‘always’], ‘flashContainer’, ‘mainFlash’);
confSize();
});
$(window).resize(function(){
alert(‘resize’);
confSize();
});

function confSize(){
var w = $(window).width();
var h = $(window).height();
if (w < minW)
w = minW;
if (h < minH)
h = minH;
$(“#wrap”).width(w);
$(“#wrap”).height(h);
}

var minW = 1004;
var minH = 650;
function setMinSize(w, h){
minW = w;
minH = h;
}

浏览器测试,发现IE会不断调用confSize() 原因是: IE fires the window resize event multiple times (instead of once) per actual resize. 实际上每一次resize,IE总会发出多次window.resize事件,而不是一次。

现成解决方案:此JQuery插件解决此问题 http://plugins.jquery.com/project/wresize

This plugin tries to fix it by introducing a specific method, wresize, which you can use like this: $( selector ).wresize( your_handler )


技术内容转载请注明来源,个人日记不允许转载,欢迎指出任何有错误或不够清晰的表达。可以邮件至 mousebomb@gmail.com