滚动时移动镀铬火灾调整大小事件

Kob*_*ant 68 jquery android scroll google-chrome

我正在使用galaxy s4,android 4.2.2上的chrome移动浏览器,出于某种原因,每当我向下滚动页面时,它都会触发一个通过jquery.cycle2幻灯片放映图像验证的resize事件.

知道为什么会这样吗?

CWi*_*tty 68

这听起来很奇怪,但我在其他浏览器中看到过它.你可以像这样解决这个问题.

var width = $(window).width(), height = $(window).height();
Run Code Online (Sandbox Code Playgroud)

然后在你的resize事件处理程序中你可以做.

if($(window).width() != width || $(window).height() != height){
  //Do something
}
Run Code Online (Sandbox Code Playgroud)

我不知道你的功能范围和所有这些,但你应该从中得到这个问题.

  • 问题是由滚动条隐藏或显示引起的,导致屏幕高度发生变化,从而触发`$(window).resize()`.我建议编辑. (13认同)
  • 它应该是|| 代替 && (7认同)
  • 救了我的一天!我只需要检查宽度 (5认同)
  • 只是想补充一点,我们也观察到iOS Safari的类似行为. (3认同)
  • 因为是高度在变化,因此if条件只能检查宽度的变化。同样,只有在宽度和高度都改变后才触发条件。这并非总是如此,但几乎所有屏幕调整大小都涉及宽度的变化,因此我建议不要使用高度部分。`if($(window).width()!= width){}` (3认同)

Alb*_*dzM 41

只是出于好奇,我试图重现它,如果我是正确的,这是由导航铬条引起的.

当您向下滚动并且chrome隐藏浏览器导航栏时,它会生成一个窗口调整大小,但这是正确的,因为之后我们有一个更大的窗口大小,因为浏览器导航栏已经离开了可用空间.

相关artcile:https://developers.google.com/web/updates/2016/12/url-bar-resizing

问候!

  • 无论它是否是预期行为,我们都不希望它触发调整大小功能。那么这里的解决方案是什么,而不走其他答案所建议的冗长代码的路线? (3认同)

小智 5

我不知道它是否仍然有趣,但我的解决方案是:)

var document_width, document_height;

$(document).ready(function()
{
	document_width=$(document).width(); document_height=$(document).height();
    // Do something
}

$(window).resize(function()
{
    if(document_width!=$(document).width() || document_height!=$(document).height()) 
    {
        document_width=$(document).width(); document_height=$(document).height();
        // Do something
    }
}	
Run Code Online (Sandbox Code Playgroud)

  • 我认为你应该使用 $(window).height() 而不是 $(document).height() 和宽度。 (2认同)