【问题标题】:jQuery: How to trigger windows resize event when scrollbar appearsjQuery:滚动条出现时如何触发窗口调整大小事件
【发布时间】:2014-07-03 11:24:02
【问题描述】:

当页面出现垂直滚动条时,需要触发windows resize事件。有没有办法使用javascript捕获滚动条外观事件?

我的页面宽度有问题,因为当垂直滚动条出现时,它会使 div 跳转到下一行。调整页面大小时似乎工作正常,所以我想在出现垂直滚动条时手动触发调整大小事件。

【问题讨论】:

  • 如果您知道导致页面溢出的原因,您可以将其用作您的事件监听器(各种)。
  • 您的问题似乎完全出在您要解决的问题之外。解决定位问题,不要为原本糟糕的解决方案写变通方法。
  • 您能提供您尝试过的任何代码吗?
  • @athms 你的解决方案听起来不错,我可以有一些听众,但我需要在很多不同的地方添加他们,因为这个页面溢出的原因不同。

标签: javascript jquery html css


【解决方案1】:

您可以使用 setInterval 来监视滚动条。如果文档宽度超过窗口宽度,可以手动触发 window.resize 事件。

function checkForScrollbar() {
    if ($(window).width() < $(document).width()) {
        $(window).trigger('resize');    
    }    
}

$(document).ready(function() {
    setInterval(function() { checkForScrollbar(); }, 500);   

    $(window).on('resize', function() {
        //Resize triggered.
        //Do Your Stuff
    });

});

查看这个 JS Fiddle:http://jsfiddle.net/USvsW/9/

【讨论】:

  • 这解决了我的问题,但我不想经常监控宽度大小,有没有其他方法来捕获滚动条出现事件?
  • 据我所知,任何事件都无法监控滚动条的出现。如果在加载时出现此问题,您可以将触发器放在 .ready 函数中。如果你通过 jQuery 操作 DOM,你总是可以在回调函数中提供 checkForScrollbar 函数。恐怕我需要查看一些代码才能给你进一步的建议。
【解决方案2】:

OrganicPanda 发布了一个无需计时器的巧妙解决方案。基本上,他在某处放置了一个 100% 的 iFrame,并在其上监听“调整大小”事件:

Detect when window vertical scrollbar appears

【讨论】:

    【解决方案3】:

    你可以使用这个:这将通过调整大小发出警报

    $(window).on('load resize', function(){  
    var w1 = $(window).width();
    alert(w1);
     }) 
    

    【讨论】:

      猜你喜欢
      • 2014-05-05
      • 1970-01-01
      • 1970-01-01
      • 2021-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-15
      • 2010-12-21
      相关资源
      最近更新 更多