1. 程式人生 > >MUI開發實戰第二集---仿今日頭條

MUI開發實戰第二集---仿今日頭條

這集的主要是內容仿今日頭條的頂部

在使用mui的開發過程中,需要按照mui指定好的規則進行開發,頭部和底部需要放到內容之前


這是程式碼截圖

<!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" />
    <meta name="apple-mobile-web-app-capable" content="yes">
	<meta name="apple-mobile-web-app-status-bar-style" content="black">
    <link href="css/mui.min.css" rel="stylesheet"/>
    <link href="css/index.css" rel="stylesheet"/>
</head>
<body>
<!--頭部開始了-->
<header class="mui-bar mui-bar-nav">
	<a class="mui-icon mui-icon-contact mui-pull-left"></a>
	<a id="info" class="mui-icon mui-icon-info-filled mui-pull-right"></a>
	<h1 class="mui-title"> </h1>
</header>
<!--頭部結束了-->

<script src="js/mui.min.js"></script>
<script src="js/index.js"></script>
</body>
</html>
檔案路徑參照第一集當中的設定即可

JS程式碼

var menu = null,
	main = null;
var showMenu = false;
mui.init({
	swipeBack: false, //啟用右滑關閉功能
	statusBarBackground: '#f7f7f7',
	gestureConfig: {
		doubletap: true
	},
	subpages: [{
		id: 'list',
		url: 'list.html',
		styles: {
			top: '45px',
			bottom: 0,
			bounce: 'vertical'
		}
	}]
});
//開啟側面選單
//避免子選單和主頁同時載入 處理側滑導航,為了避免和子頁面初始化等競爭資源,延遲載入側滑頁面;
mui.plusReady(function() {
	if (mui.os.android) {
		plus.screen.lockOrientation("portrait-primary");
	}
	main = plus.webview.currentWebview();
	main.addEventListener('maskClick', closeMenu);
	setTimeout(function() {

		menu = mui.preload({
			id: 'login', //頁面ID
			url: 'login.html', //頁面地址可以是本地的,也可以是網路的
			styles: {
				left: 0, //加載出來的樣式  距離左邊0
				width: '70%', //加載出來的樣式  寬度是總寬度的70%
				zindex: -1 //層數是-1
			},
			show: {
				aniShow: 'none' //是否顯示  此引數是隻載入不顯示
			}
		})
	}, 200)
});
/**
 * 顯示側滑選單  也就是開啟登陸及其它頁面
 */
function openMenu() {
	if (!showMenu) {
		//側滑選單處於隱藏狀態,則立即顯示出來;
		menu.show('none', 0, function() {
			//主窗體開始側滑並顯示遮罩
			main.setStyle({
				mask: 'rgba(0,0,0,0.4)',
				left: '70%',
				transition: {
					duration: 200,
				}
			});
			showMenu = true;
		});
	}
};
/**
 * 關閉選單
 */
function closeMenu() {
	if (showMenu) {
		//關閉遮罩;
		//主窗體開始側滑;
		main.setStyle({
			mask: 'none',
			left: '0',
			transition: {
				duration: 200
			}
		});
		showMenu = false;
		//等動畫結束後,隱藏選單webview,節省資源;
		setTimeout(function() {
			menu.hide();
		}, 300);
	}
};
//點選左上角側滑圖示,開啟側滑選單;
//注意 如果使用addEventListener 哪麼要確保節點已經載入完畢  
//最好是把JS檔案在非同頁面的最後面進行載入  tap是mui封裝的單擊事件
document.querySelector('.mui-icon-contact').addEventListener('tap', function(e) {
	if (showMenu) {
		closeMenu();
	} else {
		openMenu();
	}
})

//首頁返回鍵處理
//處理邏輯:1秒內,連續兩次按返回鍵,則退出應用;
var first = null;
mui.back = function() {
	//首次按鍵,提示‘再按一次退出應用’
	if (!first) {
		first = new Date().getTime();
		mui.toast('再按一次退出應用');
		setTimeout(function() {
			first = null;
		}, 1000);
	} else {
		if (new Date().getTime() - first < 1000) {
			plus.runtime.quit();
		}
	}
};

最後就是CSS程式碼了
.mui-bar h1.mui-title{
	background: url(../img/logo.png) no-repeat center;
	color: #FFFFFF;
}
.mui-bar-nav{ background:#FF0000;}
.mui-bar a{ color: #FFFFFF;}