在Firefox、WebKit和Internet Explorer中插入窗口调整大小事件的正确(现代)方法是什么?
你能同时打开/关闭两个滚动条吗?
在Firefox、WebKit和Internet Explorer中插入窗口调整大小事件的正确(现代)方法是什么?
你能同时打开/关闭两个滚动条吗?
当前回答
jQuery有一个内置的方法:
$(window).resize(function () { /* do something */ });
为了UI的响应性,你可以考虑使用setTimeout来调用你的代码,只在一些毫秒之后,如下面的例子所示,灵感来自于这个:
function doSomething() {
alert("I'm done resizing for the moment");
};
var resizeTimer;
$(window).resize(function() {
clearTimeout(resizeTimer);
resizeTimer = setTimeout(doSomething, 100);
});
其他回答
下面是使用resize事件的非jquery方法:
window.addEventListener('resize', function(event){
// do stuff here
});
它适用于所有现代浏览器。它不会为你扼杀任何东西。这里有一个实际应用的例子。
希望对jQuery有帮助
首先定义一个函数,如果已有函数,则跳到下一步。
function someFun() {
//use your code
}
浏览器调整大小的方法如下。
$(window).on('resize', function () {
someFun(); //call your function.
});
jQuery默认提供了$(window).resize()函数:
<script type="text/javascript">
// function for resize of div/span elements
var $window = $( window ),
$rightPanelData = $( '.rightPanelData' )
$leftPanelData = $( '.leftPanelData' );
//jQuery window resize call/event
$window.resize(function resizeScreen() {
// console.log('window is resizing');
// here I am resizing my div class height
$rightPanelData.css( 'height', $window.height() - 166 );
$leftPanelData.css ( 'height', $window.height() - 236 );
});
</script>
我认为你应该进一步控制这个:
var disableRes = false;
var refreshWindow = function() {
disableRes = false;
location.reload();
}
var resizeTimer;
if (disableRes == false) {
jQuery(window).resize(function() {
disableRes = true;
clearTimeout(resizeTimer);
resizeTimer = setTimeout(refreshWindow, 1000);
});
}
很抱歉提出了一个旧线程,但如果有人不想使用jQuery,你可以使用这个:
function foo(){....};
window.onresize=foo;