一尘不染

检测何时使用JavaScript调整窗口大小?

javascript

当用户结束调整浏览器窗口大小时,jQuery或JavaScript有什么办法触发函数?

换句话说:

  1. 用户调整浏览器窗口大小时是否可以检测到鼠标向上移动事件?除此以外:
  2. 我可以检测到窗口调整大小操作何时完成吗?

我目前只能在用户开始使用jQuery调整窗口大小时触发事件


阅读 324

收藏
2020-05-01

共1个答案

一尘不染

您可以使用.resize()每次实际改变宽度/高度时获取,如下所示:

$(window).resize(function() {
  //resize just happened, pixels changed
});

它会使用新的高度/宽度值并在页面中对其进行更新以供您查看。请记住,事件并没有真正开始或结束,它只是在发生调整大小时“发生”……无话可说,另一个事件不会发生。


编辑: 通过评论看来,您似乎想要一个“结束”事件,找到的解决方案可以做到这一点,但有一些例外(您无法以跨浏览器的方式区分鼠标向上和暂停,同为一个端Vs的停顿 )。您可以创建该事件,以使其更加清晰,例如:

$(window).resize(function() {
    if(this.resizeTO) clearTimeout(this.resizeTO);
    this.resizeTO = setTimeout(function() {
        $(this).trigger('resizeEnd');
    }, 500);
});

您可以在任何地方都拥有一个基本文件,无论您想做什么…然后可以绑定到resizeEnd要触发的新事件,如下所示:

$(window).bind('resizeEnd', function() {
    //do something, window hasn't changed size in 500ms
});
2020-05-01