我想以某种“好的”方式(Modernizr最有可能,但无论如何)检测布局是否应该嵌入页面的可滚动区域,否则(对于某些移动用途)应该只将所有内容作为一个流可滚动的质量。
具体案例是一个类似“EULA”的页面,其中有一个带有“I ACCEPT”按钮或其他形式的表单,然后是大量可怕的全部大写合法内容。在大屏幕上,我希望整个表单都可见,所以我想把合法的东西放在自己的滚动框中。然而,在一个有点丑陋的移动设备上(虽然我不是移动ux专家),所以我想把它全部放在线上,以便用户可以通过简单的滑动来阅读文本(LOL)滚动,然后在底部按钮将滚动到视图中。
我想我可以查看与Modernizr的联系,但这似乎不太合适。
编辑 - 虽然我很确定我所描述的内容可能无论如何都是可用性胜利,但问题是我发现我的Android设备不会注意“溢出” :自动“在页面中间的<div>
上。
答案 0 :(得分:2)
我采取的方法是依靠Modernizr.touch
和Modernizr.overflowscrolling
测试。如果Modernizr在DOM中的touch
元素中插入no-overflowscrolling
和html
类(或者直接检查Modernizr.touch
和Modernizr.overflowscrolling
),那么我会避免{{ 1}}。这意味着错误处理overflow:auto
的Android设备无法获取它。
这可能是一个不完美的解决方案;可能有一些设备可以处理overflow:auto
在这种情况下无法获得它的设备。但这并不是世界末日,至少在我的情况下。它似乎适用于所有最常见的设备/浏览器。
它具有简单的优点。我已经将Modernizr加载用于其他用途。
答案 1 :(得分:1)
正如其他人所说,Modernizr.overflowscrolling
检查overflow-scrolling
css属性,而不是设备是否可以使用div
在overflow: auto
内滚动内容。
事实上,在我最近的测试中,Nexus 5实际上将Modernizr.overflowscrolling
作为false
返回,因此无法依赖它。
这个非常小的脚本(没有依赖关系)似乎启用了缺少支持的设备(Android 2.3)的触摸滚动... http://chris-barr.com/2010/05/scrolling_a_overflowauto_element_on_a_touch_screen_device/