我在galaxy s4,android 4.2.2上使用chrome移动浏览器,由于某种原因,每次向下滚动页面时,都会触发一个调整大小事件,该事件由jquery.cycle2幻灯片的图像缩放验证。
知道为什么会这样吗?
Answers:
出于好奇,我试图重现它,如果正确,这是由导航镶边栏引起的。
当您向下滚动并chrome隐藏浏览器导航栏时,会产生窗口大小调整,但这是正确的,因为在那之后,由于浏览器导航栏剩余的可用空间,我们具有更大的窗口大小。
相关文章:https : //developers.google.com/web/updates/2016/12/url-bar-resizing
听起来很奇怪,但我在其他浏览器中也看到过。您可以像这样解决此问题。
var width = $(window).width(), height = $(window).height();
然后在调整大小事件处理程序中即可。
if($(window).width() != width || $(window).height() != height){
//Do something
}
我不知道您的功能范围以及所有这些,但是您应该从中了解要点。
$(window).resize()
。我建议进行修改。
if($(window).width() != width){ }
我不知道它仍然很有趣,但是我的解决方案是:)
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
}
}
这个问题已经回答了,但是由于这个问题没有提出响应站点的问题,因此我想补充一些信息。
开发响应式网站时,我在Android上的Chrome浏览器中遇到了此问题。调整窗口大小时,我想隐藏菜单(由于某些设计元素需要适当放置),但是Chrome for android的行为会触发滚动大小调整事件,这有点困难。
切换到开始使用onOrientationChange并不是一种选择,因为这是一个响应站点,台式PC上没有方向更改,但是我仍然需要代码在常规PC,平板电脑和智能手机上都能使用。
我本来可以开始浏览器嗅探,但是到目前为止,我已经能够避免这种情况。
我尝试实现CWitty建议的解决方案,但是由于实际上向上或向下滚动都会触发高度变化,但这种变化也不起作用。
我最终添加了一个条件,该条件仅在更改宽度时才隐藏菜单,而在更改高度时不隐藏菜单。这对我来说有效,因为我只需要在更改宽度时重写菜单即可。
当有人向下滚动时,移动设备中的浏览器通常隐藏其水平顶部导航栏,而在向上滚动时再次显示。此行为会影响客户端的大小,从而触发resize事件。您只需要控制由于高度变化或至少由于高度变化而不执行代码。
为了修复它,请使用onOrientationChange和window.orientation属性。请参阅相关答案:此处
onOrientationChange
是有用的其他地方..
事实证明,有很多东西可以resize
在各种移动浏览器中触发。
我知道链接到外部资源并不理想,但是QuirksMode具有可读的表,我不想在此处复制(或维护):http : //www.quirksmode.org/dom/events/resize_mobile.html
举一个例子,就是让我们明白的一个例子:显然,在许多浏览器中,打开软键盘都会触发该事件。