0

我是 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 的可见性作为备用屏幕,说“请稍候,我们正在处理信息”。

脚本经验:

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>
4

3 回答 3

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

于 2011-08-02T18:00:56.157 回答
1

在 jQuery 网站上有一条评论来调整事件的大小:

根据实现,调整大小事件可以在调整大小进行时连续发送(Internet Explorer 和基于 WebKit 的浏览器,如 Safari 和 Chrome 中的典型行为),或者仅在调整大小操作结束时发送一次(典型行为在其他一些浏览器,例如 Opera)。

于 2011-08-02T18:09:31.060 回答
0

在调整大小时,您不会触发该事件,因为在调整大小发生之前该事件不会触发。

MDN 参考:

**NOTE:**

The resize event is fired after the window has been resized.

于 2011-08-02T18:00:48.197 回答