我是JavaScript的新手。我试图弄清楚如何在用户完成窗口大小调整后创建一个onresize函数来激活函数和另一个函数。很可能会发生会话超时。
关于编写基本功能的任何想法?
<script type="text/javascript">
window.onresize = function () {
// The first function goes here while resizing is happening
// Then function 2 occurs when window resizing is finished by the user
}
</script>
这是我正在尝试的修改版本。目标是在页面调整大小时隐藏页面上的主要胶囊div。最初,当触发onresize事件时,div的可见性将成为一个待机屏幕,上面写着“请等待我们处理信息”。
脚本Exp:
var resizeTimeout;
window.onresize = function() {
clearTimeout(resizeTimeout);
document.getElementById("loading").className = "loading-visible";
document.getElementById('XXXDIV').style.visibility = 'hidden';
for ( var h = 1; h < 40; h++)
{
document.getElementById('DesignXXX' + h ).style.visibility = 'hidden';
}
resizeTimeout = setTimeout(function() {
var hideDiv = function(){document.getElementById("loading").className = "loading-invisible";};
var oldLoad = window.onload;
var newLoad = oldLoad ? function(){hideDiv.call(this);oldLoad.call(this);} : hideDiv;
location.reload(true) = newLoad;
document.getElementById('XXXDIV').style.visibility = 'visible';
for ( var h = 1; h < 40; h++)
{
document.getElementById('DesignXXX' + h ).style.visibility = 'visible';
}
}, 2000); // set for 1/4 second. May need to be adjusted.
};
</script>
答案 0 :(得分:4)
这应该这样做:
var resizeTimeout;
window.onresize = function() {
clearTimeout(resizeTimeout);
// handle normal resize
resizeTimeout = setTimeout(function() {
// handle after finished resize
}, 250); // set for 1/4 second. May need to be adjusted.
};
这是怀疑者的一个工作示例:http://pastehtml.com/view/b2jabrz48.html
答案 1 :(得分:1)
在jQuery网站上有一个评论来调整事件的大小:
根据实施情况,调整大小事件可以在调整大小正在进行时连续发送(基于Internet Explorer和基于WebKit的浏览器(如Safari和Chrome)中的典型行为),或者仅在调整大小操作结束时发送一次(在其他一些浏览器中的典型行为,例如Opera。
答案 2 :(得分:0)
在调整大小时,您不会触发该事件,因为事件在调整大小之后才会触发。
**NOTE:**
The resize event is fired after the window has been resized.