Javascript 获取上一个和当前窗口宽度

Javascript 获取上一个和当前窗口宽度,javascript,jquery,resize,Javascript,Jquery,Resize,我正试图通过JS获取以前和当前的窗口宽度。我使用jQuery捕获窗口大小调整事件。这是我的密码: <script> function getWindowWidth() { var myWidth = 0, myHeight = 0; if( typeof( window.innerWidth ) == 'number' ) { myWidth = window.innerWidth; myHeight = window.innerHeight;

我正试图通过JS获取以前和当前的窗口宽度。我使用jQuery捕获窗口大小调整事件。这是我的密码:

<script>
 function getWindowWidth() {
   var myWidth = 0, myHeight = 0;
     if( typeof( window.innerWidth ) == 'number' ) {
         myWidth = window.innerWidth; myHeight = window.innerHeight;
     } else if( document.documentElement && ( document.documentElement.clientWidth ||document.documentElement.clientHeight ) ) {
         myWidth = document.documentElement.clientWidth; myHeight = document.documentElement.clientHeight;
     } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
         myWidth = document.body.clientWidth; myHeight = document.body.clientHeight;
     }
     return myWidth;
 }
 var lastWindowWidth;
 $(document).ready(function() {
   $(window).resize(function() {
       $('#h1_text').text("Previous: "+ lastWindowWidth + " Current: " + getWindowWidth());
       lastWindowWidth = getWindowWidth();
     });
 });
</script>

为什么以前的:和当前的:值相似?提前谢谢

您正在使用jQuery

因此,请使用jQuery:

$(window).width();

小提琴:给你

根据评论:

var lessThan = false;

$(document).ready(function() {
    if ($(window).width() < 980) {
        lessThan = true;
    }
});

$(window).resize(function() {
   if ($(window).width() < 980) {
        lessThan = true;
    }
});
var lessThan=false;
$(文档).ready(函数(){
如果($(窗口).width()<980){
lessThan=正确;
}
});
$(窗口)。调整大小(函数(){
如果($(窗口).width()<980){
lessThan=正确;
}
});

答案的实质是在调整窗口大小之前捕获上一个窗口的宽度:

var previous_window_width = $(window).width();

...

$(window).resize(function() {
    var current_window_width = $(window).width();
    // do whatever you need with previous_window_width
});

-我在这里得到了不同的值。顺便说一句,您不需要将调整大小处理程序包装在
$(document).ready
。对于我来说,如果使用窗口边缘调整大小,值是不同的,但是如果最大化或恢复窗口,值是相同的。在Chromeh测试,仍然无法理解为什么在我的本地机器上它不能工作。。。但是,看看我注意到的:“之前:647当前:663”这正常吗?我需要抓住那个时刻,当窗口从980调整到979的时候…哦,我明白了,仍然有和昨天一样的问题。。。你不是说你只需要知道第一次宽度小于980吗?你能不能测试一下当前的大小并在它符合标准时设置一个标志?是的,你是对的(:仍然无法处理这个问题。让我试试你的解决方案…谢谢!作为以前的解决方案,它有时也会返回我“previous:601 current:582”。不知道如何处理)我只需要抓住这一刻,当窗口从980调整到979时,我已经在MacOS上的Chrome 21.0.1180.82上进行了检查,您无法控制返回的值。您可以跟踪窗口何时调整大小以及新值,但仅此而已。如果它们从最大化到半屏幕,或者它们将窗口的大小缩小1000像素,你仍然只能得到新的值,不管它们是什么。@Neal:你可以尝试快速调整窗口的大小,当它的大小调整得很慢时,它就可以工作了fine@Ilya-通过“我只需要抓住窗口从980调整到979的时刻”你是说你想抓住在调整大小拖动过程中窗口宽度下降到980px以下的那一刻吗?
var lastWindowWidth = $(window).width();

$(window).resize(function() {
   $('#h1_text').text("Previous: "+ lastWindowWidth + " Current: " + $(window).width());
       lastWindowWidth = $(window).width();
 });
var lessThan = false;

$(document).ready(function() {
    if ($(window).width() < 980) {
        lessThan = true;
    }
});

$(window).resize(function() {
   if ($(window).width() < 980) {
        lessThan = true;
    }
});
var previous_window_width = $(window).width();

...

$(window).resize(function() {
    var current_window_width = $(window).width();
    // do whatever you need with previous_window_width
});