Javascript jquerymobile+;iScroll,无法向下滚动
我正试图与你融为一体。我知道已经有一个这样做了,但是,我正在避免它,因为它带有输入元素(键入时页面会疯狂地跳跃) 我当前的实现如下所示: -(JSFiddle示例)[] 正如您可能注意到的,除了一个主要的问题外,这一点是完美的: 无法向下滚动。此问题似乎是跨操作系统/浏览器的问题 但是,如果我的I重写了Javascript jquerymobile+;iScroll,无法向下滚动,javascript,jquery,jquery-mobile,iscroll4,iscroll,Javascript,Jquery,Jquery Mobile,Iscroll4,Iscroll,我正试图与你融为一体。我知道已经有一个这样做了,但是,我正在避免它,因为它带有输入元素(键入时页面会疯狂地跳跃) 我当前的实现如下所示: -(JSFiddle示例)[] 正如您可能注意到的,除了一个主要的问题外,这一点是完美的: 无法向下滚动。此问题似乎是跨操作系统/浏览器的问题 但是,如果我的I重写了onBeforeScrollStart方法: var scroller = new iScroll('wrapper', { onBeforeScrollStart: null }); 它的效果
onBeforeScrollStart
方法:
var scroller = new iScroll('wrapper', { onBeforeScrollStart: null });
它的效果更好一些。现在,用户可以滚动,但行为会出现故障(响应速度慢),允许用户滚动他想要的高度等等
(不过,这样做似乎只会改变iOS上的情况)
我现在正在寻找这个问题的解决方案,它最好支持iOS5和iOS6,并使用
元素。考虑到iScroll和jQuery Mobile是当今两个主要的框架,这应该是一个非常常见的问题。我对您的代码进行了一些研究,发现了一些问题和解决方案,请查看
- 加载jQuery之后,请使用
jQuery(document).ready()
- 在
的直接子元素上初始化iScroll似乎比在包装器
上初始化iScroll更合适包装器
- 我没有通过CSS设置包装高度,而是使用javascript更精确并避免溢出
- 仅供参考,
已被定义为一个函数。(在小提琴中,您使用了scroll
作为变量)滚动
- 现在它就像一个符咒
您可以看到此演示:
非常感谢你的努力和帮助,非常非常感谢!您的解决方案解决了最初的问题,但是,只会滚动第一个元素。[](其他内容保留在后台,未滚动)。。也不能选择
元素。我在ScrollStart之前尝试了各种覆盖,但它们都破坏了您的解决方案..您对如何解决这个问题没有任何想法吗?我被卡住了。不客气,我更新了我的答案,加入了不可选择的输入修复,但是,我看不到你描述的关于第一个元素只被滚动的问题。再次感谢你,该修复工作也很好。在这里,
不可见(它在标题下),但那是可滚动的元素,列表不可滚动。我正在iOS 6和Firefox 16上进行测试。@Zar这是因为您的h1
位置不正确,并且目前被视为iScroll的可滚动项之一,他应该是#content
的直接子项。
$(function(){
var footerHeight = $('[data-role="footer"]').outerHeight(true),
headerHeight = $('[data-role="header"]').outerHeight(true),
padding = 15*2; //ui-content padding
$('#wrapper, #scroller').height( $(window).innerHeight() - headerHeight - footerHeight - padding );
// To make inputs focusable,
// you can rebind their touchend's event to trigger their focus
$('input').on('touchend', function(){
$(this).focus();
});
var iScroller = new iScroll('scroller');
});
myScroll = new IScroll('#wrapper', { eventPassthrough: true, scrollX: true, scrollY: false, preventDefault: false });