H5頁面開發之頁面基本結構佈局
阿新 • • 發佈:2019-01-22
H5頁面主要藉助HTML5技術(例如CSS3媒體查詢、CSS3動畫、Canvas等),將圖、文、動畫、視訊、音訊等媒體形式進行合理組合,常用於邀請函、小遊戲、品牌展示、抽獎等,主要在移動社交環境如微信中傳播。
單頁Web應用(SPA)的模式是H5頁面最常用的一種模式,整個H5頁面只需要單個HTML 檔案,通常瀏覽器一開始會載入必需的HTML、CSS和JavaScript,所有的操作都在這個HTML上,通過JavaScript控制DOM操作來完成。
在下面的結構中,核心原理是,每一個包含page類名的DOM元素為一個可見的頁面,通過控制不同的page元素,來實現對頁面的進場出場的控制。本文只列出來一個簡單的HTML結構,和部分的css,當然如果想實現炫酷的效果和豐富的互動,還需要很多其他的模組,例如預載入、音訊視訊處理的JS。
PS:工作中的一些H5不方便公開,想著單獨做作品放在部落格裡,尋找好的方案和設計。。。
html檔案
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-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" />
<meta name="format-detection" content="telephone=no, email=no" />
<meta name="full-screen" content="true" />
<meta name="screen-orientation" content="portrait" />
<meta name="x5-fullscreen" content="true" />
<meta name="360-fullscreen" content="true" />
<title>基本結構</title>
<link href="css/common.css" rel="stylesheet" />
<link href="css/index.css" rel="stylesheet" />
<script>
// 統計程式碼
</script>
</head>
<body>
<!-- 如果是在微信裡執行,在頁面的最上方放一張隱藏的圖片,作為預設的分享圖片 -->
<div style="display:none;">
<img src="http://7xlzdr.com2.z0.glb.qiniucdn.com/img/share.jpg">
</div>
<div class="page cssloader ">
<div class="loader-inner ball-scale-multiple">
<div></div>
<div></div>
<div></div>
</div>
</div>
<!-- loading -->
<div class="page p0">
<img src="img/loading_m_colorful.gif" alt="" class="p0-loading">
<p class="p0-process">0</p>
</div>
<!-- 第1頁 -->
<div class="page p1 ">
<div class="content">
<img src="img/niubi.jpg" alt="" class="p1-aimg">
<div class="btn-common p1-btn-alert btn-touchable">彈框</div>
<div class="btn-common btn-next ">下一頁</div>
<div class="btn-common btn-prev ">上一頁</div>
</div>
</div>
<!-- 第2頁 -->
<div class="page p2 ">
<img src="img/niubi.jpg" alt="" class="p2-aimg">
<div class="btn-common p2-btn-alert btn-touchable">彈框</div>
<div class="btn-common btn-next btn-touchable">下一頁</div>
<div class="btn-common btn-prev btn-touchable">上一頁</div>
</div>
<!-- 第3頁 -->
<div class="page p3 ">
<div class="btn-common p3-btn-alert btn-touchable">分享</div>
<div class="btn-common btn-next btn-touchable">下一頁</div>
<div class="btn-common btn-prev btn-touchable">上一頁</div>
</div>
<!-- 第4頁 -->
<div class="dialog1 dialog">
<div class="dialog1-box">
<img src="img/alert1.png" alt="" class="dialog1-bg">
<div class="btn-common dialog1-btn-get btn-touchable">點選使用</div>
</div>
</div>
<!-- 第5頁 -->
<div class="dialog2 dialog ">
<div class="dialog2-box">
<img src="img/alert2.png" alt="" class="dialog2-bg">
<div class="btn-common dialog2-btn-ok btn-touchable">確認</div>
</div>
</div>
<!-- 第6頁 -->
<div class="dialog0 dialog ">
<img src="img/sharehint.png" alt="" class="dialog0-hint">
</div>
<script>
var app = app || {
currentPage: 0,
pages: {},
dialogs:{},
common: {}
};
</script>
<script type="text/javascript"></script>
</body>
</html>
css檔案
@charset "utf-8";
html {
font-size: 10px
}
body {
width: 100%;
height: 100%;
position: absolute;
background: #fff;
}
/*********************************************************/
.dialog,
.page {
width: 100%;
max-width: 600px;
height: 100%;
display: none;
position: absolute;
top: 0;
right: 0;
left: 0;
overflow: hidden;
}
.dialog {
background: rgba(0, 0, 0, 0.8);
z-index: 9999;
}
.content {
height: 100%;
width: 100%;
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate3d(-50%, -50%, 0);
transform: translate3d(-50%, -50%, 0);
outline: 1px solid red;
}
.btn-common {
background: rgba(0, 0, 0, 0.6);
position: absolute;
width: 8rem;
height: 3.5rem;
line-height: 3.5rem;
font-size: 1.8rem;
color: #fff;
text-align: center;
}
.btn-next {
bottom: 1rem;
right: 1rem;
}
.btn-prev {
bottom: 1rem;
left: 1rem;
}
.btn-touchable.touched {
background: rgba(0, 0, 0, 0.3);
margin-bottom: -2px;
}