在我的应用程序中垂直滚动时遇到问题。实际上,我的页面上有一个 jqm 面板和事件监听器,用于 swipeleft 和 swiperight 事件(见下文)......
$('#ccm_content').on('swiperight', function () {
if ( $.mobile.activePage.jqmData( "panel" ) !== "open" ) {
$('#menupanel').panel('open');
}
});
$('ccm_content').on('swipeleft', function (event) {
if ($(event.target).closest(".ui-slider").length) {
return false;
}
//else{
if ( $.mobile.activePage.jqmData( "panel" ) === "open" ) {
console.log("closing menupanel!");
$('#menupanel').panel('close');
}
//}
});
没有这些事件监听器,垂直滚动是平滑的——即使用我的拇指平移。如果我添加了这些事件监听器,滚动有时会很费劲,会突然停在内容中的 div 或锚点上。
我想那是因为我没有一直在 y-achsis 上以 100% 的速度滚动(但谁真的这样做?),这根本不是问题 - 但它实际上是一个问题。
实际上,我非常喜欢 JQM 面板和滑动。但是对于这个滚动问题,我可能不得不丢弃它们,或者至少退回到按钮。
有谁知道解决方法?也许它有助于将 datarole="content" 包装在 scrollstart 上的透明 div 中,并删除 scrollstop 上的包装。
-----更新
好的 - 所以我做了一些研究,我在博客上发现了一些非常好的评论:看这里!
我想我明天要调查我的一些标记。
有几件事可能会导致垂直方向上的波动滚动(即使我使用的是 iScrollView,btw veeeery 很酷。看看那些:iScrollView与同时转换相结合)。
<a>
标签:由于我的 WebApp 不包含任何列表视图,但许多<div>
带有<img>
标签的标签包含在<a>
标签内,我认为,可能值得花时间删除所有“坏的?” 锚阴影:我喜欢 JQM 提供的那些漂亮的阴影,但也许我应该尝试在禁用它们时提高滚动性能 - 就像这里建议的那样:点击
固定工具栏
为了区分 hScroll 和 vScroll 也许这会帮助我:
// you can set this fix in DOM ready or jQM's mobileinit
// DOM ready
$(function(){
$.event.special.swipe.scrollSupressionThreshold = 100;
});
// jQM defaults
$(document).bind("mobileinit", function(){
$.event.special.swipe.scrollSupressionThreshold = 100;
});
如果这些建议中的任何一个可能让我更接近平滑滚动 - 我会告诉你..最迟明天:-)
亲切的问候,火炬手
-----更新
好吧,伙计们,坏消息 - 没有任何帮助。我认为这与那些锚标签有关,它们是我最崭露头角的候选人。下一步是什么?我已经用 iScroll 试验了很长时间,但我不得不说<ul>
<li>
...
</li>
</ul>
Pattern 不是我想要的,而且 iScroll 只适用于 listViews 而不是深度级联标记。最好的方法是使用 iScrollView,它以一种复杂的方式包装 iScroll。我可以肯定地说4,由带有DIV和锚点的模式以及带有IMG-Tags的隔行DIV组成的标记似乎会导致滚动不稳定(在Android webkit上) - 即使使用iScrollView也是如此。现在我将我的动态标记更改为 jQuery Mobile ListViews因为我希望这会起作用。