bootstrap 移动端开发时,需要实现 tab 页切换,也就是,通过对 nav nav-tabs 设置,实现,可以横向滑动。这里介绍2种方法。第一种,通过 CSS 样式
<style>
.nav-tabs {
white-space: nowrap;
overflow-x: auto;
overflow-y: hidden;
}
.nav-tabs > li {
display: inline-block;
float: none;
}
</style>
<div class="container">
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#home">首页</a></li>
<li><a data-toggle="tab" href="#menu1">菜单 1</a></li>
<li><a data-toggle="tab" href="#menu2">菜单 2</a></li>
<li><a data-toggle="tab" href="#menu3">菜单 3</a></li>
<li><a data-toggle="tab" href="#menu4">菜单 4</a></li>
<li><a data-toggle="tab" href="#menu5">菜单 5</a></li>
<li><a data-toggle="tab" href="#menu6">菜单 6</a></li>
<li><a data-toggle="tab" href="#menu7">菜单 7</a></li>
</ul>
<div class="tab-content">
<div id="home" class="tab-pane fade in active">
首页
</div>
<div id="menu1" class="tab-pane fade">
<h3>菜单 1</h3>
<p>这是菜单 1 显示的内容。</p>
</div>
<div id="menu2" class="tab-pane fade">
<h3>菜单 2</h3>
<p>这是菜单 2 显示的内容。</p>
</div>
<div id="menu3" class="tab-pane fade">
<h3>菜单 3</h3>
<p>这是菜单 3 显示的内容。</p>
</div>
<div id="menu4" class="tab-pane fade">
<h3>菜单 4</h3>
<p>这是菜单 4 显示的内容。</p>
</div>
<div id="menu5" class="tab-pane fade">
<h3>菜单 5</h3>
<p>这是菜单 5 显示的内容。</p>
</div>
<div id="menu6" class="tab-pane fade">
<h3>菜单 6</h3>
<p>这是菜单 6 显示的内容。</p>
</div>
<div id="menu7" class="tab-pane fade">
<h3>菜单 7</h3>
<p>这是菜单 7 显示的内容。</p>
</div>
</div>
</div>第二种,通过 jquery,在 nav-tabs 的外部加层 div ,class 设置为 overflow-x:scroll
<div class="container">
<div style="overflow-x:scroll">
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#home">首页</a></li>
<li><a data-toggle="tab" href="#menu1">菜单 1</a></li>
<li><a data-toggle="tab" href="#menu2">菜单 2</a></li>
<li><a data-toggle="tab" href="#menu3">菜单 3</a></li>
<li><a data-toggle="tab" href="#menu4">菜单 4</a></li>
<li><a data-toggle="tab" href="#menu5">菜单 5</a></li>
<li><a data-toggle="tab" href="#menu6">菜单 6</a></li>
<li><a data-toggle="tab" href="#menu7">菜单 7</a></li>
</ul>
</div>
<div class="tab-content">
<div id="home" class="tab-pane fade in active">
首页
</div>
<div id="menu1" class="tab-pane fade">
<h3>菜单 1</h3>
<p>这是菜单 1 显示的内容。</p>
</div>
<div id="menu2" class="tab-pane fade">
<h3>菜单 2</h3>
<p>这是菜单 2 显示的内容。</p>
</div>
<div id="menu3" class="tab-pane fade">
<h3>菜单 3</h3>
<p>这是菜单 3 显示的内容。</p>
</div>
<div id="menu4" class="tab-pane fade">
<h3>菜单 4</h3>
<p>这是菜单 4 显示的内容。</p>
</div>
<div id="menu5" class="tab-pane fade">
<h3>菜单 5</h3>
<p>这是菜单 5 显示的内容。</p>
</div>
<div id="menu6" class="tab-pane fade">
<h3>菜单 6</h3>
<p>这是菜单 6 显示的内容。</p>
</div>
<div id="menu7" class="tab-pane fade">
<h3>菜单 7</h3>
<p>这是菜单 7 显示的内容。</p>
</div>
</div>
</div>
<script>
$(function () {
const tabs = $('.nav-tabs');
// ul 下的 li
const lis = $('.nav-tabs > li');
// 开始的宽度设置为 10
let width = 10;
// 遍历 li
lis.each(function (index, el) {
width += $(el).width();
});
tabs.css('width', width);
});
</script>参考来源: