这个:
$('body').on('touchmove', function(e) { e.preventDefault(); });
Run Code Online (Sandbox Code Playgroud)
可以工作,但会禁用整个页面的滚动,这远非理想.
这个:
$('*').on('touchstart', function(e){
var element = $(this).get(0);
if ( element.scrollTop <= 0 ) element.scrollTop = 1;
if ( element.scrollTop + element.offsetHeight >= element.scrollHeight ) element.scrollTop = element.scrollHeight - element.offsetHeight - 1;
});
Run Code Online (Sandbox Code Playgroud)
适用于具有滚动区域的页面.然而,当没有任何东西要滚动时,它将再次显示橡皮筋.
所以我的问题:
如何禁用橡皮筋效果并保持-webkit-overflow-scrolling区域可滚动?
[更新]
最佳方案
禁用所有不可滚动元素(如选项卡栏或导航栏)上的滚动.
anElement.addEventListener('touchmove', function( event ){ event.preventDefault() };
Run Code Online (Sandbox Code Playgroud)
将滚动处理程序附加到可滚动元素(例如主要内容).
anElement.addEventListener('touchstart', function( event ){
if( this.scrollTop === 0 ) {
this.scrollTop += 1;
} else if( this.scrollTop + this.offsetHeight >= this.scrollHeight ) {
this.scrollTop -= 1; …Run Code Online (Sandbox Code Playgroud) 我可以用一些新鲜的想法!
标题说明了一切,真的:我的测试Droid Razr不允许我在自己的板载浏览器上滚动Bootstrap响应表.
不同地呈现内容(例如,非表格或更改表格布局)不是我的客户的选择; 有没有办法让Razr滚动表格?
谢谢!
PS:Bootstrap自己的响应表示例在这款手机/浏览器组合中不起作用,所以我认为这可能不是首发......