css - 如何使 jquery 移动选项卡标题固定

标签 css jquery-mobile tabs

我正在为我的应用程序使用 jquery-mobile 选项卡功能。我在这些选项卡中添加了一个 ListView ,我现在需要固定选项卡的标题,这样即使我向下滚动也能看到选项卡标题。任何解决方案?..

 <div data-role="tabs" id="tabs">
  <div data-role="navbar">
    <ul>
      <li><a href="#one" data-ajax="false">one</a></li>
      <li><a href="#two" data-ajax="false">two</a></li>
      <li><a href="ajax-content.html" data-ajax="false">three</a></li>
    </ul>
  </div>
  <div id="one" class="ui-body-d ui-content">
    <h1>First tab contents</h1>
  </div>
  <div id="two">
    <ul data-role="listview" data-inset="true">
        <li><a href="#">Acura</a></li>
        <li><a href="#">Audi</a></li>
        <li><a href="#">BMW</a></li>
        <li><a href="#">Cadillac</a></li>
        <li><a href="#">Ferrari</a></li>
    </ul>
  </div>
</div>

最佳答案

选项卡小部件本身不直接支持此功能,但您无需编写太多代码即可自行完成。首先,将页眉设置为 data-position="fixed" 并将标签按钮移到页眉中:

<div data-role="header" data-position="fixed">
    <h1>My page</h1> 
      <div data-role="navbar" id="navbar" data-iconpos="top" >
        <ul>
            <li><a href="#one" class="tabButton" >one</a></li>
            <li><a href="#two" class="tabButton">two</a></li>
            <li><a href="#three" class="tabButton">three</a></li>
        </ul>
    </div>
</div> 

另请注意,我已将 tabButton 类分配给所有按钮,以便为我们提供一个简单的选择器。

接下来为所有选项卡内容 DIV 提供一个 tabView 类,为我们提供另一个简单的选择器。

<div data-role="tabs" id="tabs" >
    <div id="one" class="ui-body-d ui-content tabView">
        <h1>First tab contents</h1>
    </div>
    <div id="two"  class="tabView">
    ...
    </div>
</div>

现在在 pagecreate 处理程序中,首先从所有选项卡按钮中删除事件类并隐藏所有选项卡 View ,然后选择默认 View (在我的示例中为选项卡一)并显示它并突出显示相应的按钮。最后,向所有选项卡按钮添加点击处理程序,以便在单击选项卡按钮时显示正确的 View :

$(document).on("pagecreate", "#page1", function(){
    //start with only viewone visible
    $(".tabButton").removeClass("ui-btn-active");
    $(".tabView").hide();
    $(".tabButton").eq(0).addClass("ui-btn-active");
    var viewHref  = $(".tabButton").eq(0).prop("href");
    $(viewHref.substr(viewHref.indexOf('#'))).show();

    $(".tabButton").on("click", function(){
        $(".tabButton").removeClass("ui-btn-active");        
        $(".tabView").hide();
        var href = $(this).prop("href");
        $(href.substr(href.indexOf('#'))).show();        
        $(this).addClass("ui-btn-active");
        return false;
    });
});

Here is a working DEMO

Tab 2 内容较长

关于css - 如何使 jquery 移动选项卡标题固定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26673106/

相关文章:

Firefox 中特定最大宽度的 C# 媒体查询

javascript - 如何像 facebook 和 twitter 一样显示帖子更新时间?

javascript - jquery 移动错误进入 javascript 谷歌控制台

jquery - 在jquery中隐藏段落元素

jquery - 使用 Jquery Mobile 对图像进行捏合放大/缩小效果

android - "The type TabActivity is deprecated"对于应用程序选项卡

tabs - iTerm 选项卡切换顺序

javascript - Bootstrap 网格系统容器/嵌套

html - 调整/缩放内部容器中的字体

ios - 在ios中制作条件标签栏