移动Chrome浏览器会触发滚动resize事件
我在Galaxy S4,Android 4.2.2上使用chrome移动浏览器,并且由于某种原因,每次向下滚动页面时,都会触发一个通过jquery.cycle2幻灯片显示的图像缩放比例进行validation的resize事件。
任何想法,为什么这可能会发生?
这听起来很奇怪,但是我在其他浏览器中看到过。 你可以像这样解决这个问题。
var width = $(window).width(), height = $(window).height();
然后在您的resize事件处理程序中,您可以执行。
if($(window).width() != width && $(window).height() != height){ //Do something }
我不知道你的职能范围和所有这些,但是你应该从这个问题中得到答案。
只是为了好奇,我试图重现它,如果我是正确的,这是由导航铬栏造成的。
当你向下滚动浏览器并且Chrome隐藏浏览器导航栏时,它会产生一个窗口大小调整,但是这是正确的,因为之后我们有一个更大的窗口大小,因为浏览器导航栏留下了空闲的空间。
问候!
我不知道它还是有趣的,但我的解决scheme是:)
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中遇到了这个问题。 当调整窗口的大小,我想隐藏菜单(由于一些devise元素需要适当的定位),但Chrome浏览器的Android行为触发滚动resize事件有点困难..
切换到开始使用onOrientationChange不是一个选项,因为这是一个响应网站,桌面PC上没有方向改变,但我仍然需要代码在普通PC,平板电脑和智能手机上工作。
我本来可以开始浏览器嗅探等,但我迄今为止已经能够避免..
我试图实现CWittybuild议的解决scheme,但由于向上或向下滚动实际上触发了高度变化,也没有工作。
我最终添加了一个条件,只有当宽度改变时才隐藏菜单,而不是高度已经改变。 这在我的情况下工作,因为我只需要改变宽度时改变菜单。
这是滚动手机上的Javascriptresize事件的副本
为了解决它,使用onOrientationChange和window.orientation属性。 看到相关的答案: 在这里
原来有很多事情可以在各种移动浏览器中触发resize
。
我知道链接到外部资源并不理想,但QuirksMode有一个可读表,我不想在这里复制(或维护): http : //www.quirksmode.org/dom/events/resize_mobile.html
只是举个例子,一个让我们看到的例子:显然在很多浏览器中,打开软键盘会引发事件。