2012-02-08 73 views
1

我想以某种“好”的方式检测(Modernizr最有可能,但无论)布局是否应该嵌入页面的可滚动区域,否则(对于一些移动应用)应该只是将所有内容作为一个可滚动块传送。检测“overflow:auto”是否正常工作(移动浏览器)

具体的案例是一个“EULA”式页面,其中有一个带有“I ACCEPT”按钮或其他形式的表单,然后是大量可怕的全部大写的合法内容。在大屏幕上,我希望整个表单可见,所以我想把合法的东西放在它自己的滚动框中。但是,在移动设备上会很丑陋(虽然我不是移动专家),所以我想把所有内容放在一起,以便用户可以用简单的滑动读取文本(LOL)滚动,然后在底部按钮将滚动到视图。

我想我可以检查与Modernizr的联系,但这似乎不太正确。

编辑 —但我敢肯定,我描述的很可能是反正可用性赢了,就是我发现我的Android设备将不支付任何注意“溢出:汽车”上在页面中间的<div>

+1

它不存在于这个套件中,但是kangax的'cft'项目中的很多技术可能会有帮助:http://kangax.github.com/cft/ - 甚至有一个针对不同的溢出错误。 – 2012-02-08 23:15:38

+0

嗯我会看看那些,但也许现在(和我的直接目的几乎没有需要严格的严格)检查“触摸”可能是要做的事情。触摸驱动的滚动是真正的问题,无论是否存在错误。谢谢亚历克斯:-) – Pointy 2012-02-08 23:29:11

回答

2

我采取的方法是依靠Modernizr.touchModernizr.overflowscrolling测试。如果Modernizr将touchno-overflowscrolling类插入到DOM中的html元素中(或者直接检查Modernizr.touchModernizr.overflowscrolling),那么我将避免overflow:auto。这意味着错误处理overflow:auto的Android设备不会得到它。

这可能是一个不完美的解决方案;可能有设备可以处理overflow:auto,在这种情况下无法使用它。但这不完全是世界末日,至少在我的情况下。它似乎对所有最常见的设备/浏览器都能正常工作。

它具有简单的优点。我已经将Modernizr加载用于其他用途。

+1

你如何检查Modernizr.overflow滚动? – ghostCoder 2012-05-07 10:19:31

+1

您需要使用css-overflow-scrolling构建Modernizr(您可以访问http://modernizr.com/download/并选中Community Add-Ons下的复选框)或使用addTest(),如https://所示github上。COM/Modernizr的/ Modernizr的/斑点/主/特征检测/ CSS-溢出-scrolling.js。 – Trott 2012-05-07 16:19:34

+0

好的那样做......但问题是,它说,该属性是支持,即使它不工作:(http://stackoverflow.com/questions/10483397/test-for-overflow-yauto-returning-true- on-android-3-even-though-it-doesnt-wor#comment13549712_10483397 – ghostCoder 2012-05-08 05:47:08

1

正如其他人所说的Modernizr.overflowscrolling将检查overflow-scrolling CSS属性,不是设备是否可以滚动使用overflow: auto一个div内的内容。

事实上,在我最近的测试中,Nexus 5实际上返回Modernizr.overflowscrollingfalse,所以它不能被依赖。

这非常小的脚本(无依赖性)似乎能触摸滚动的装置(Android 2.3)缺乏支持... http://chris-barr.com/2010/05/scrolling_a_overflowauto_element_on_a_touch_screen_device/

链接回购: https://github.com/chrismbarr/TouchScroll

+0

你最好在这里包含脚本,就好像链接改变了你的答案会失效。 – 2014-02-13 12:22:33

相关问题