首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >安卓浏览器滚动时触发窗口$( jQuery ).resize()

安卓浏览器滚动时触发窗口$( jQuery ).resize()
EN

Stack Overflow用户
提问于 2013-01-10 20:04:42
回答 2查看 8.6K关注 0票数 19

我最近遇到了一些很奇怪的事情,我不确定是不是我错过了什么,但我不明白为什么会发生这种情况。

我有一个网站,上面运行着以下jQuery代码片段:

代码语言:javascript
复制
$(window).resize(function(){
  alert("Resize fired!");
});

当我使用Android手机浏览器访问该网站时,只需上下滚动该网站,就可以看到警报。

Android浏览器的滚动条(淡入淡出)覆盖在整个站点的顶部,似乎不会引起窗口的任何大小调整,所以我猜这个事件不是由它们触发的。

有人知道为什么Android浏览器会在滚动时触发这个事件吗?

我们将非常感谢您提供的任何信息。

编辑:

我尝试过为body设置CSS,将overflow-y设置为滚动,看看这是不是一个可行的解决方案,但在Android上滚动时仍然会触发事件。

编辑#2:

我在HTML中使用了以下元标记:

代码语言:javascript
复制
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-09 12:11:39

我遇到了同样的问题,我的解决方案是检查窗口大小是否实际发生了变化,为此,我需要将过去的窗口宽度存储在我的应用程序中的某个地方。代码可能是这样的:

代码语言:javascript
复制
$(window).resize(function() {
  clearTimeout(app.resize.timer)
  app.resize.timer = setTimeout(function(){
     var window_changed = $(window).width() != app.size.window_width
     if(window_changed) console.log('Window size changed! resize site')
  }, 500)               
})

我没有考虑到窗口高度,因为当我向下滚动网站时,Android浏览器会隐藏并显示地址文本框,从而使窗口高度在垂直滚动时发生变化

票数 7
EN

Stack Overflow用户

发布于 2014-06-19 10:46:32

我也有同样的问题!

这个问题是真的,因为当网址栏隐藏和显示时,Android浏览器的高度会发生变化。因此,我们必须使浏览器仅在宽度大小发生变化时重新加载。

我看到这个question in Stackoverflow告诉我如何做到这一点。这是jsfiddle

代码语言:javascript
复制
      var doit;
      function resizedw(appwidth){
          var window_changed = $(window).width() != appwidth;
          if ($(window).width() != appwidth){
            ("body").append("did it"+appwidth+" ");
          }
          past_width = $(window).width();
      }

      var past_width = $(window).width();
      window.onresize = function() {
        clearTimeout(doit);
        doit = setTimeout(function() {
            resizedw(past_width);
        }, 100);
      };
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14257541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档