繁体   English   中英

改变窗口尺寸后如何停止功能?

[英]How to stop function if window size is changed?

我有根据窗口大小运行的函数,并根据调整大小而变化;

function checksize() {
    if ( $(window).width() > 1220 ) {
        //sticker1220();
    } else if ( $(window).width() > 640 & $(window).width() < 1219 )  {
        sticker950();
    } else if ( $(window).width() < 639 ) {
        sticker320();
    }
};

checksize();
$(window).resize(checksize); 

我发现当我打开尺寸为1230px的窗口,然后将其更改为300px时,我可以使用三个功能。 我用CSS解决了这个问题。 但是要获得更好的代码,我想知道如何停止此功能。

嗨,我对此有更多解决方案。 1:通过使用setTimeoutclearTimeout

var timeout = null;
function checksize() {
   if(timeout){
        clearTimeout(timeout);
   }
   timeout = setTimeout(function(){
        //Your code logic here
   }, 1000);
}

checksize();
$(window).resize(checksize); 

2:通过使用javascript对象

function windowResize(){
      var onRunning = false, self = this;
      this.onResized = function(){
            if(onRunning){
                  //Your code logic here
                  onRunning = true;
            }
            onRunning = false;
      }
}

var _myObject = new windowResize();

function checksize() {
      _myObject.onResized();
}

checksize();
$(window).resize(checksize);

希望对您有所帮助:) ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM