国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

在IE瀏覽器中resize事件執行多次的解決方法

2019-11-20 23:45:48
字體:
來源:轉載
供稿:網友
這是個讓人每次改變頁面窗口的大小時很郁悶的方法,尤其在IE瀏覽器中,稍微動下窗口邊框,就會觸發很多次事件。更讓人蛋疼的是在resize事件中包含某些頁面內容處理或計算導致resize事件再次被觸發的時候,IE會隨機陷入假死狀態。
網上找了好久,都是千律一篇的,到處都是轉載的一個方法;以下是網上找到的一個解決方法:
復制代碼 代碼如下:

var resizeTimer = null;
$(window).resize(function() {
if (resizeTimer) clearTimeout(resizeTimer);
resizeTimer = setTimeout("changeHeight()", 500);
});//resize事件延遲500毫秒執行

這個方法雖然可以解決多次執行事件問題,但是不完美,最后我找到了一個jquery插件形式的解決方案;
復制代碼 代碼如下:

/*
===============================================================================
WResize is the jQuery plugin for fixing the IE window resize bug
...............................................................................
Copyright 2007 / Andrea Ercolino
-------------------------------------------------------------------------------
LICENSE: http://www.opensource.org/licenses/mit-license.php
WEBSITE: http://noteslog.com/
===============================================================================
*/
( function( $ )
{
$.fn.wresize = function( f )
{
version = '1.1';
wresize = {fired: false, width: 0};
function resizeOnce()
{
if ( $.browser.msie )
{
if ( ! wresize.fired )
{
wresize.fired = true;
}
else
{
var version = parseInt( $.browser.version, 10 );
wresize.fired = false;
if ( version < 7 )
{
return false;
}
else if ( version == 7 )
{
//a vertical resize is fired once, an horizontal resize twice
var width = $( window ).width();
if ( width != wresize.width )
{
wresize.width = width;
return false;
}
}
}
}
return true;
}
function handleWResize( e )
{
if ( resizeOnce() )
{
return f.apply(this, [e]);
}
}
this.each( function()
{
if ( this == window )
{
$( this ).resize( handleWResize );
}
else
{
$( this ).resize( f );
}
} );
return this;
};
} ) ( jQuery );

你可以把上面的代碼另存為jquery.wresize.js導入網頁,把以下代碼拷貝到記事本中,另存為網頁,然后測試一下。示例:
復制代碼 代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" style="overflow:hidden;">
<head>
<title> test window resize </title>
<script type="text/javascript" src="http://jquery.com/src/jquery-latest.pack.js"></script>
<script type="text/javascript" src="jquery.wresize.js"></script>
<script type="text/javascript">
jQuery( function( $ )
{
function content_resize()
{
var w = $( window );
var H = w.height();
var W = w.width();
$( '#content' ).css( {width: W-20, height: H-20} );
}
$( window ).wresize( content_resize );
content_resize();
} );
</script>
</head>
<body>
<div id="content" style="border: 1px dashed silver; position:absolute; overflow:auto;">
test test testtest test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test
</div>
</body>
</html>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绥棱县| 密云县| 玉树县| 巢湖市| 阳信县| 同江市| 昭通市| 万荣县| 兴国县| 大安市| 铜鼓县| 江油市| 皋兰县| 黄平县| 郸城县| 丽水市| 兴城市| 深水埗区| 久治县| 兰溪市| 丘北县| 潜江市| 赤城县| 正镶白旗| 宁陕县| 鄯善县| 敦煌市| 河西区| 泸定县| 陇南市| 尖扎县| 海伦市| 泸西县| 东丰县| 吴堡县| 朝阳县| 玉田县| 萝北县| 辽宁省| 西吉县| 临夏县|