实现底部选项卡切换
帮助
http://ask.dcloud.net.cn/article/650
HTML
<!doctype html>
<html>
<head>
<meta charset="UTF-8" />
<title></title>
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<link rel="stylesheet" type="text/css" href="assets/global/css/mui.min.css" />
<link rel="stylesheet" type="text/css" href="assets/global/css/iconfont.css" />
</head>
<body>
<header class="mui-bar mui-bar-nav">
<h1 class="mui-title">我的头条</h1>
</header>
<div class="mui-content">
</div>
<nav class="mui-bar mui-bar-tab">
<a class="mui-tab-item mui-active" href="news.html">
<span class="mui-icon iconfont icon-home_light"></span>
<span class="mui-tab-label">资讯</span>
</a>
<a class="mui-tab-item" href="video.html">
<span class="mui-icon iconfont icon-video_light"></span>
<span class="mui-tab-label">视频</span>
</a>
<a class="mui-tab-item">
<span class="mui-icon iconfont icon-search_light"></span>
<span class="mui-tab-label">发现</span>
</a>
<a class="mui-tab-item">
<span class="mui-icon iconfont icon-my_light"></span>
<span class="mui-tab-label">我的</span>
</a>
</nav>
<script src="assets/global/js/mui.min.js" type="text/javascript" charset="utf-8"></script>
<script src="assets/apps/js/main.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>
JS
var Main = function() {
// 设置默认打开首页显示的子页序号;
var index = 0;
// 把子页的路径写在数组里面
var subpages = ['news.html', 'video.html'];
/**
* 初始化首页
*/
var handlerInitMain = function() {
mui.init();
mui.plusReady(function() {
handlerInitWebview();
handlerBindChangeTabEvent();
});
}
/**
* 初始化 Webview
*/
var handlerInitWebview = function() {
// 获取当前页面所属的 Webview 窗口对象
var self = plus.webview.currentWebview();
for(var i = 0; i < subpages.length; i++) {
// 创建 webview 子页
var sub = plus.webview.create(
subpages[i], //子页url
subpages[i], //子页id
{
top: '45px', //设置距离顶部的距离
bottom: '51px' //设置距离底部的距离
}
);
// 如不是我们设置的默认的子页则隐藏,否则添加到窗口中
if(i != index) {
sub.hide();
}
// 将 webview 对象填充到窗口
self.append(sub);
}
}
/**
* 切换选项卡事件
*/
var handlerBindChangeTabEvent = function() {
// 当前激活选项
var activeTab = subpages[index],
title = document.querySelector(".mui-title");
// 选项卡点击事件
mui('.mui-bar-tab').on('tap', 'a', function(e) {
// 获取目标子页的id
var targetTab = this.getAttribute('href');
if(targetTab == activeTab) {
return;
}
// 更换标题
title.innerHTML = this.querySelector('.mui-tab-label').innerHTML;
// 显示目标选项卡
plus.webview.show(targetTab, "fade-in", 300);
// 隐藏当前选项卡
plus.webview.hide(activeTab);
// 更改当前活跃的选项卡
activeTab = targetTab;
});
}
return {
initMain: function() {
handlerInitMain();
}
}
}();
Main.initMain();