zoukankan      html  css  js  c++  java
  • 关于window的resize事件

    也许你也遇到过这样的问题,或者还没注意到有过这样的问题,如下代码,在窗口发生变化时,会进入死循环:

    var _funResize = function(){
        console.log('resize...' + Math.random());
    }
    $(window).bind('resize',_funResize);

    是问题,总得研究解决,方案:

    var _funResize = function(){
        // 先解除绑定
        $(window).unbind('resize',_funResize);
       
        console.log('resize...' + Math.random());
       
        // 重新绑定
        setTimeout(function(){
            $(window).bind('resize',_funResize);
        },10);
    }
    $(window).bind('resize',_funResize);

    但是这种方法只能是触发第一次resize事件,有时我们是想触发最后一次resize事件。可以通过时间来判断

            var rtime = new Date();
            var timeout = false;
            var delta = 200;
            $(window).resize(function() {
                rtime = new Date();
                if (timeout === false) {
                    timeout = true;
                    setTimeout(resizeend, delta);
                }
            });
    
    
            function resizeend() {
                if (new Date() - rtime < delta) {
                    setTimeout(resizeend, delta);
                } else {
                    timeout = false;
                    alert($(window).height());
                }
            }
  • 相关阅读:
    demo12-回到顶部
    demo11-友情链接
    demo10-超链接标签
    demo09-程序员练习
    demo08-图片标签
    demo07-盒子标签
    demo06-字体标签
    demo05-换行标签
    转&nbsp;j2ee&nbsp;.线程池.对象池,连接池
    几种开源Java&nbsp;Web容器线程池…
  • 原文地址:https://www.cnblogs.com/coolsundy/p/4319676.html
Copyright © 2011-2022 走看看