html Android浏览器/三星Galaxy SII网页表单滚动错误,选择列表点击框不滚动

f5emj3cl  于 2023-03-16  发布在  Android
关注(0)|答案(3)|浏览(140)

**编辑:**我已经上传了一段视频到YouTube,演示了这个错误:http://www.youtube.com/watch?v=zkDYlgtX5Hk

我有一个非常奇怪的错误,我发现测试我的新的网络应用程序在三星Galaxy S2运行Android 4.03 ICS.
实际情况是,当您在默认的Web浏览器中加载一个表单,然后向下滚动页面时,hitbox/touchable区域似乎停留在页面首次加载时屏幕上的位置,即使表单元素本身已经向上滚动了屏幕。
据我所知,我有几个可用的测试设备,我认为这只发生在三星Galaxy S2上,因为我已经在Android模拟器中尝试了相同版本的Android,无法复制这个问题。我知道这使得它成为一个非常特定的用户群,有这个问题,但上次我检查Galaxy S2是最受欢迎的Android手机在我的国家(澳大利亚)所以能找到解决办法就好了。
我创建了一个非常简单的页面来演示http://users.tpg.com.au/geoffica/test.html
您可以通过执行以下操作重现该问题:
1.在Galaxy S2上加载页面
1.滚动浏览器,使页面完全充满屏幕,地址栏 * 刚好 * 离开屏幕顶部。
1.在选择框所在的位置,将手指放在屏幕的一侧,作为选择列表所在位置的标记。
1.向下滚动页面任意距离,(同时仍然保持选择列表在屏幕上)然后触摸选择列表曾经所在的空白区域,选项应该出现在屏幕上。可能需要几次尝试才能得到它,但它会发生。
现在我知道你认为这是很棘手的复制,可能很少会发生,但在我为客户构建的一个表单上,由于元素的位置,hitbox总是与表单的submit按钮重叠,这使得点击submit按钮非常困难。如果hitbox重叠,选择列表也会从其他选择列表窃取触摸,使错误的选项在触摸时出现。
我尝试了很多方法,但目前为止找到的唯一解决方法是使用touchstart事件而不是click事件来触发提交按钮,这似乎发生在选择列表的click事件之前,并防止它先进入,但这远远不够理想,也不能阻止选择列表窃取页面上其他元素的点击。
我也考虑过推出我自己的jquery插件,把选择列表放到屏幕外,然后通过触摸链接或其他东西来触发它们的点击事件,如果是移动终端,那么不管选择列表在什么位置,选项都会出现在屏幕上。这将是相当麻烦的,但是,我需要考虑的影响,这将对用户来自个人电脑或iPad,例如,这表明下拉列表中的选项。这对我来说听起来很有问题。甚至可能需要一些Galaxy S2特定的浏览器/设备嗅探。
除了不使用选择列表之外,有没有人对此有真实的的解决办法?

axr492tv

axr492tv1#

你有没有机会为它使用绝对定位?这将固定到屏幕上的某个区域,而不是页面。

kpbpu008

kpbpu0082#

首先,我将文档头更新为适当的HTML5头:

<!DOCTYPE html>
bkkx9g8r

bkkx9g8r3#

我认为这可能是一个问题,你可以修复Jquery-mobile只是简单的,因为当你不使用它,你的网站看起来很奇怪的移动浏览器
可能这就是解决方案,这只是一个提示:)

相关问题