Jquery mobile JQM水平滚动导航栏

Jquery mobile JQM水平滚动导航栏,jquery-mobile,scrollview,navbar,Jquery Mobile,Scrollview,Navbar,我一直在寻找文档,但似乎找不到一种方法来制作一个可滚动的水平导航栏。有人完成了吗 这是我到目前为止为navbar所做的 <div data-role="header" data-scroll="x"> <ul> <li class="logo"><a href="#"><img src="img/iphoneheader.gif" alt="Penn State Live" /></a></li

我一直在寻找文档,但似乎找不到一种方法来制作一个可滚动的水平导航栏。有人完成了吗

这是我到目前为止为navbar所做的

<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>


我知道这不是你想要的,而是:

实例:


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

更新了示例:
更好一点

这是在ypur lst注释之后,因此我将解决用手指滚动导航栏的需要

您指出了一个有问题的实现。还有其他问题。 我曾经用过这个: 用于桌面触摸屏。(不确定它在移动设备上的行为) 它与一个hrefs一起工作,它有一个选项
allowiliting:true
,用于关闭阻止其他事件通过的功能

这是:
我想这就是你想要的

HTML


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;
    });         
});
$(函数(){
var阶跃=1;
无功电流=0;
var最大值=$(“.ul li”).size();
可见var=2;
无功转速=500;
var-liSize=120;
var高度=60;
var ulSize=LISSIZE*最大值;
var divSize=liSize*可见;
$('.categories').css(“宽度”,“自动”).css(“高度”,高度+“px”).css(“可见性”,“可见”).css(“溢出”,“隐藏”).css(“位置”,“相对”);
$(“.categories ul li”).css(“列表样式”、“无”).css(“显示”、“内联”);
$(“.categories ul”).css(“width”,ulSize+“px”).css(“left”,“current*liSize”).css(“position”,“absolute”).css(“white space”,“nowrap”).css(“margin”,“0px”).css(“padding”,“5px”);
$(“.categories”).swipleft(函数(事件){
如果(当前+步长<0 | |当前+步长>最大-可见){return;}
否则{
电流=电流+阶跃;
$('.categories ul').animate({left:-(liSize*current)},速度,null);
}
返回false;
});
$(“.categories”).SwiperRight(函数(){
如果(当前-步长<0 | |当前-步长>最大-可见){return;}
否则{
电流=电流-阶跃;
$('.categories ul').animate({left:-(liSize*current)},速度,null);
}
返回false;
});         
});

在研究同一问题时偶然发现了这一点。虽然还没有尝试过,但它看起来非常方便

另外,请尝试:


这看起来很有前途,在移动设备上性能也很好。

我想知道您所说的“可滚动的水平导航栏”到底是什么意思". 有没有一个例子可以说明你想要实现的目标?@groovetrain是这样的,但只是为了导航,这样你就可以向左或向右滑动以获得更多的菜单项。你的新例子在ff和safari中似乎很好,但在iphone/ipad safari中却不行。你需要仔细研究一下,因为我只是在使用你的示例中提供的代码评论。你应该能够做到这一点,请分享你的代码,当你知道如何。祝你好运我确实找到了我想要的东西,但我不能点击其中的链接,这对我来说是个问题,这款提琴在手机上效果更好。我用的是iPad,它的性能要比最上等的答案好得多。非常努力。在我正在测试的iPhone上,它似乎工作不太顺利。这是一个很好的停止/开始滚动动作。
    <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>
$(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;
    });         
});