我正在使用galaxy s4,android 4.2.2上的chrome移动浏览器,由于某些原因,每当我向下滚动页面时,它都会触发通过jquery.cycle2幻灯片放映图像验证的resize事件。 / p>
知道为什么会这样吗?
答案 0 :(得分:63)
这听起来很奇怪,但我在其他浏览器中看到过它。你可以像这样解决这个问题。
var width = $(window).width(), height = $(window).height();
然后在你的resize事件处理程序中你可以做。
if($(window).width() != width && $(window).height() != height){
//Do something
}
我不知道你的功能的范围和所有这些,但是你应该从中得到这个。
答案 1 :(得分:36)
只是出于好奇,我试图重现它,如果我是正确的,这是由导航铬条引起的。
当你向下滚动并且chrome隐藏浏览器导航栏时,它会生成一个窗口调整大小,但这是正确的,因为之后我们有一个更大的窗口大小,因为浏览器导航栏已经离开了可用空间。
相关艺术品:https://developers.google.com/web/updates/2016/12/url-bar-resizing
问候!
答案 2 :(得分:3)
我不知道它是否仍然有趣,但我的解决方案是:)
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
}
}

答案 3 :(得分:1)
问题已经得到解答,但由于这个问题没有提出响应式网站的问题,我想补充一些相关信息。
我在开发响应式网站时在Android上的Chrome中遇到过此问题。调整窗口大小时我想隐藏菜单(由于某些设计元素需要正确定位)但是Chrome for android行为在滚动时触发调整大小事件有点困难..
切换为开始使用onOrientationChange不是一个选项,因为这是一个响应式网站,桌面PC上没有方向更改,但我仍然需要代码可以在普通PC,平板电脑和智能手机上使用。
我本来可以开始做浏览器嗅探等,但到目前为止我已经能够避免这种情况..
我试图实现CWitty建议的解决方案,但实际上向上或向下滚动会触发高度变化,但也无效。
我最后添加了一个条件,只有在更改宽度时才会隐藏菜单,而不是在高度发生变化时。这适用于我的情况,因为我只需要在宽度改变时重写菜单。
答案 4 :(得分:0)
这是Javascript resize event on scroll mobile
的副本要修复它,请使用onOrientationChange和window.orientation属性。请参阅相关答案:here
答案 5 :(得分:0)
原来有很多东西可以在各种移动浏览器中触发resize
。
我知道链接到外部资源并不理想,但是QuirksMode有一个我不想在这里复制(或维护)的可读表: http://www.quirksmode.org/dom/events/resize_mobile.html
举一个例子,就是给我们的一个例子:显然在许多浏览器中,打开软键盘会触发事件。
答案 6 :(得分:0)
移动设备中的浏览器通常会在有人向下滚动时隐藏其水平顶部导航栏,并在向上滚动时再次显示。此行为会影响客户端的大小,从而触发resize事件。您只需要控制不执行代码,因为高度变化,或者至少是因为高度变化。