【问题标题】:jquery, write a function to get both new and old window.widthjquery,编写一个函数来获取新旧window.width
【发布时间】:2012-03-31 12:54:15
【问题描述】:

我如何编写一个函数来检测和缓存 window.width 调整大小的开始和结束

.resize(funciton{}) 中的宽度在调整大小时会立即改变,但每次调整大小时我都会关注新旧大小之间的差异。

更新---

我需要捕捉差异,以便我可以对一个元素进行 width: '+=diff'

【问题讨论】:

  • 必须是一个小的 jQuery 插件,可以满足您的需求。

标签: javascript jquery


【解决方案1】:

此版本将在 500 毫秒后更新最后一个窗口大小 (demo)。是的,有些浏览器只有在调整大小停止后才会更新窗口宽度,有些浏览器会在您拖动窗口时主动更新。

var throttle,
    win = $(window),
    cur_width = win.width(),
    old_width = cur_width,
    diff = 0;

win.resize(function() {
    clearTimeout(throttle);
    cur_width = win.width();
    throttle = setTimeout(function() {
        diff = cur_width - old_width;
        old_width = cur_width;
    }, 500);
}).trigger('resize');

【讨论】:

  • 谢谢,但超时的事情是相当错误的,但我想它只适用于超时方法。所以对我来说最好的选择实际上是编写一个销毁函数并在窗口调整大小时重建。
猜你喜欢
  • 2019-04-10
  • 2011-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多