【问题标题】:JQM horizontal scroll navbarJQM水平滚动导航栏
【发布时间】:2011-08-09 22:54:42
【问题描述】:

我一直在寻找文档,但似乎找不到在jQuery mobile 中制作可滚动水平导航栏的方法吗?有人做到了吗?

这是我目前的导航栏

<div data-role="header" data-scroll="x">
    <ul>
        <li class="logo"><a href="#"><img src="img/iphoneheader.gif" alt="Penn State Live" /></a></li>
        <li id="link"><a href="#type=colleges">Colleges</a></li>
        <li><a href="#">Campuses</a></li>
        <li><a href="#">Faculty and Staff</a></li>
        <li><a href="#">Of Interest</a></li>
        <li><a href="#">Photos</a></li>
        <li><a href="#">Video</a></li>
        <li><a href="#">Newswire Subscription</a></li>
        <li><a href="#">PSUTXT</a></li>
    </ul>
</div>

【问题讨论】:

  • 我很想知道您所说的“可滚动水平导航栏”是什么意思。有没有你想要完成的例子?
  • @groovetrain 像这样valums.com/files/2009/menu/final.htm 但只是用于导航,因此您可以向左或向右滑动以获取更多菜单项

标签: jquery-mobile scrollview navbar


【解决方案1】:

我知道这不是您想要的,但是:

实时示例:http://jsfiddle.net/9zuxH/10/

<div data-role="page" data-theme="b" id="jqm-home">
    <ul >
        <li data-role="fieldcontain"> 
            <fieldset data-role="controlgroup" data-type="horizontal">
                <div class="logo"><a href="#"><img src="img/iphoneheader.gif" alt="Penn State Live" /></a></div>
                <div id="link"><a href="#type=colleges">Colleges</a></div>
                <a href="#">Campuses</a>
                <a href="#">Faculty and Staff</a>
                <a href="#">Of Interest</a>
                <a href="#">Photos</a>
                <a href="#">Video</a>
                <a href="#">Newswire Subscription</a>
                <a href="#">PSUTXT</a>
            </fieldset>
        </li>
    </ul>
</div>

文档:jquerymobile.com/demos/1.0a4.1/docs/lists/lists-forms-inset.html

更新了示例:http://jsfiddle.net/9zuxH/21/ 稍微好一点

【讨论】:

  • 您的新示例在 ff 和 safari 中似乎可以正常工作,但在 iphone/ipad safari 上却不行
  • 您需要调整它,因为我只是使用您在评论中提供的示例代码。你应该能够做到这一点,当你弄清楚如何时请分享你的代码。祝你好运!
  • 我确实找到了azoffdesign.com/overscroll,它可以满足我的需求,但我无法点击其中的链接,这是个问题
  • 对我来说,这个小提琴在移动设备上效果更好。我使用的是 iPad,性能比最受好评的答案要好得多。
【解决方案2】:

这是在 ypur lst 评论之后,所以我将解决用手指滚动导航栏的需要。

您指出了一个有问题的实现。还有其他的。 我用过一次: http://plugins.jquery.com/project/jQclickNScroll 用于桌面触摸屏。 (不确定它在手机上的表现如何) 它与 href 一起使用,并且有一个选项 allowHiliting:true 可以关闭以防止其他事件通过

还有这个: http://digitalillusion.altervista.org/wordpress/pages/dragscroller/viewport-test.html

【讨论】:

    【解决方案3】:

    我想这就是你想要的。

    HTML。

        <div class="categories">                
                <ul>                    
                    <li><span><a href="">ABC</a></span></li>
                    <li><span><a href="">DEF</a></span></li>
                    <li><span><a href="">GHI</a></span></li>
                    <li><span><a href="">JKL</a></span></li>
                </ul>               
            </div>
    

    jQuery

    $(function(){           
        var step = 1;
        var current = 0;
        var maximum = $(".categories ul li").size();
        var visible = 2;
        var speed = 500;
        var liSize = 120;
        var height = 60;    
        var ulSize = liSize * maximum;
        var divSize = liSize * visible; 
    
        $('.categories').css("width", "auto").css("height", height+"px").css("visibility", "visible").css("overflow", "hidden").css("position", "relative");
        $(".categories ul li").css("list-style","none").css("display","inline");
        $(".categories ul").css("width", ulSize+"px").css("left", -(current * liSize)).css("position", "absolute").css("white-space","nowrap").css("margin","0px").css("padding","5px");
    
        $(".categories").swipeleft(function(event){
            if(current + step < 0 || current + step > maximum - visible) {return; }
            else {
                current = current + step;
                $('.categories ul').animate({left: -(liSize * current)}, speed, null);
            }
            return false;
        });
    
        $(".categories").swiperight(function(){
            if(current - step < 0 || current - step > maximum - visible) {return; }
            else {
                current = current - step;
                $('.categories ul').animate({left: -(liSize * current)}, speed, null);
            }
            return false;
        });         
    });
    

    【讨论】:

    • 非常努力。在我正在测试它的 iPhone 上,它似乎不太顺利。这是一个停止/开始滚动动作。
    【解决方案4】:

    在研究同一问题时偶然发现了这一点。还没试过,但看起来很方便

    http://darsa.in/sly/

    【讨论】:

      【解决方案5】:

      另外,试试:http://kryops.de/jqm/tabs/demo

      这看起来很有前途,而且在移动设备上的性能也很棒。

      【讨论】:

        猜你喜欢
        • 2016-02-08
        • 2017-02-08
        • 2014-06-25
        • 2021-05-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多