如果更改窗口大小,如何停止功能?

时间:2017-03-21 19:09:58

标签: javascript jquery css

我根据窗口大小运行函数并更改调整大小;

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 个答案:

答案 0 :(得分:0)

嗨,我有更多的解决方案。 1:使用 setTimeout clearTimeout

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);

我希望它能帮助你更多:) ...