1

在我的应用程序中垂直滚动时遇到问题。实际上,我的页面上有一个 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与同时转换相结合)。

  1. <a>标签:由于我的 WebApp 不包含任何列表视图,但许多<div>带有<img>标签的标签包含在<a>标签内,我认为,可能值得花时间删除所有“坏的?” 锚

  2. 阴影:我喜欢 JQM 提供的那些漂亮的阴影,但也许我应该尝试在禁用它们时提高滚动性能 - 就像这里建议的那样:点击

  3. 固定工具栏

为了区分 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因为我希望这会起作用。

4

0 回答 0