384 lines
10 KiB
HTML
384 lines
10 KiB
HTML
<!DOCTYPE html>
|
||
<html>
|
||
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<title>Hello MUI</title>
|
||
<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">
|
||
|
||
<link rel="stylesheet" href="../css/mui.min.css">
|
||
<style>
|
||
html,
|
||
body {
|
||
min-height: 100%;
|
||
background-color: #efeff4;
|
||
}
|
||
.animated {
|
||
-webkit-animation-duration: 0.5s;
|
||
animation-duration: 0.5s;
|
||
-webkit-animation-fill-mode: both;
|
||
animation-fill-mode: both;
|
||
}
|
||
@-webkit-keyframes bounceInDown {
|
||
0%, 60%, 75%, 90%, 100% {
|
||
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||
}
|
||
0% {
|
||
opacity: 0;
|
||
-webkit-transform: translate3d(0, -100%, 0);
|
||
transform: translate3d(0, -100%, 0);
|
||
}
|
||
60% {
|
||
opacity: 1;
|
||
-webkit-transform: translate3d(0, 25px, 0);
|
||
transform: translate3d(0, 25px, 0);
|
||
}
|
||
75% {
|
||
-webkit-transform: translate3d(0, -10px, 0);
|
||
transform: translate3d(0, -10px, 0);
|
||
}
|
||
90% {
|
||
-webkit-transform: translate3d(0, 5px, 0);
|
||
transform: translate3d(0, 5px, 0);
|
||
}
|
||
100% {
|
||
-webkit-transform: none;
|
||
transform: none;
|
||
}
|
||
}
|
||
@keyframes bounceInDown {
|
||
0%, 60%, 75%, 90%, 100% {
|
||
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||
}
|
||
0% {
|
||
opacity: 0;
|
||
-webkit-transform: translate3d(0, -100%, 0);
|
||
transform: translate3d(0, -100%, 0);
|
||
}
|
||
60% {
|
||
opacity: 1;
|
||
-webkit-transform: translate3d(0, 25px, 0);
|
||
transform: translate3d(0, 25px, 0);
|
||
}
|
||
75% {
|
||
-webkit-transform: translate3d(0, -10px, 0);
|
||
transform: translate3d(0, -10px, 0);
|
||
}
|
||
90% {
|
||
-webkit-transform: translate3d(0, 5px, 0);
|
||
transform: translate3d(0, 5px, 0);
|
||
}
|
||
100% {
|
||
-webkit-transform: none;
|
||
transform: none;
|
||
}
|
||
}
|
||
.bounce-in-down {
|
||
-webkit-animation-name: bounceInDown;
|
||
animation-name: bounceInDown;
|
||
}
|
||
@-webkit-keyframes fadeInDown {
|
||
0%, 60%, 75%, 90%, 100% {
|
||
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||
}
|
||
0% {
|
||
opacity: 0;
|
||
-webkit-transform: translate3d(0, -100%, 0);
|
||
transform: translate3d(0, -100%, 0);
|
||
}
|
||
60% {
|
||
opacity: 1;
|
||
-webkit-transform: translate3d(0, 0px, 0);
|
||
transform: translate3d(0, 0px, 0);
|
||
}
|
||
75% {
|
||
-webkit-transform: translate3d(0, 0px, 0);
|
||
transform: translate3d(0, 0px, 0);
|
||
}
|
||
90% {
|
||
-webkit-transform: translate3d(0, 0px, 0);
|
||
transform: translate3d(0, 0px, 0);
|
||
}
|
||
100% {
|
||
-webkit-transform: none;
|
||
transform: none;
|
||
}
|
||
}
|
||
@keyframes fadeInDown {
|
||
0%, 60%, 75%, 90%, 100% {
|
||
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||
}
|
||
0% {
|
||
opacity: 0;
|
||
-webkit-transform: translate3d(0, -100%, 0);
|
||
transform: translate3d(0, -100%, 0);
|
||
}
|
||
60% {
|
||
opacity: 1;
|
||
-webkit-transform: translate3d(0, 0px, 0);
|
||
transform: translate3d(0, 0px, 0);
|
||
}
|
||
75% {
|
||
-webkit-transform: translate3d(0, 0px, 0);
|
||
transform: translate3d(0, 0px, 0);
|
||
}
|
||
90% {
|
||
-webkit-transform: translate3d(0, 0px, 0);
|
||
transform: translate3d(0, 0px, 0);
|
||
}
|
||
100% {
|
||
-webkit-transform: none;
|
||
transform: none;
|
||
}
|
||
}
|
||
.fade-in-down {
|
||
-webkit-animation-name: fadeInDown;
|
||
animation-name: fadeInDown;
|
||
}
|
||
@-webkit-keyframes bounceOutUp {
|
||
20% {
|
||
-webkit-transform: translate3d(0, -10px, 0);
|
||
transform: translate3d(0, -10px, 0);
|
||
}
|
||
40%,
|
||
45% {
|
||
opacity: 1;
|
||
-webkit-transform: translate3d(0, 20px, 0);
|
||
transform: translate3d(0, 20px, 0);
|
||
}
|
||
100% {
|
||
opacity: 0;
|
||
-webkit-transform: translate3d(0, -100%, 0);
|
||
transform: translate3d(0, -100%, 0);
|
||
}
|
||
}
|
||
@keyframes bounceOutUp {
|
||
20% {
|
||
-webkit-transform: translate3d(0, -10px, 0);
|
||
transform: translate3d(0, -10px, 0);
|
||
}
|
||
40%,
|
||
45% {
|
||
opacity: 1;
|
||
-webkit-transform: translate3d(0, 20px, 0);
|
||
transform: translate3d(0, 20px, 0);
|
||
}
|
||
100% {
|
||
opacity: 0;
|
||
-webkit-transform: translate3d(0, -100%, 0);
|
||
transform: translate3d(0, -100%, 0);
|
||
}
|
||
}
|
||
.bounce-out-up {
|
||
-webkit-animation-name: bounceOutUp;
|
||
animation-name: bounceOutUp;
|
||
}
|
||
@-webkit-keyframes fadeOutUp {
|
||
20% {
|
||
-webkit-transform: translate3d(0, 0px, 0);
|
||
transform: translate3d(0, 0px, 0);
|
||
}
|
||
40%,
|
||
45% {
|
||
opacity: 1;
|
||
-webkit-transform: translate3d(0, 0px, 0);
|
||
transform: translate3d(0, 0px, 0);
|
||
}
|
||
100% {
|
||
opacity: 0;
|
||
-webkit-transform: translate3d(0, -100%, 0);
|
||
transform: translate3d(0, -100%, 0);
|
||
}
|
||
}
|
||
@keyframes fadeOutUp {
|
||
20% {
|
||
-webkit-transform: translate3d(0, 0px, 0);
|
||
transform: translate3d(0, 0px, 0);
|
||
}
|
||
40%,
|
||
45% {
|
||
opacity: 1;
|
||
-webkit-transform: translate3d(0, 0px, 0);
|
||
transform: translate3d(0, 0px, 0);
|
||
}
|
||
100% {
|
||
opacity: 0;
|
||
-webkit-transform: translate3d(0, -100%, 0);
|
||
transform: translate3d(0, -100%, 0);
|
||
}
|
||
}
|
||
.fade-out-up {
|
||
-webkit-animation-name: fadeOutUp;
|
||
animation-name: fadeOutUp;
|
||
}
|
||
.menu-open {
|
||
height: 100%;
|
||
width: 100%;
|
||
}
|
||
.menu-open .mui-scroll-wrapper {
|
||
position: absolute;
|
||
top: 48;
|
||
bottom: 0;
|
||
left: 0;
|
||
z-index: 1;
|
||
width: 100%;
|
||
overflow: hidden;
|
||
-webkit-backface-visibility: hidden;
|
||
}
|
||
.menu-backdrop {
|
||
display: none;
|
||
}
|
||
.menu-open .menu-backdrop {
|
||
position: fixed;
|
||
top: 0;
|
||
bottom: 0;
|
||
height: 100%;
|
||
width: 100%;
|
||
display: block;
|
||
z-index: 998;
|
||
}
|
||
.menu-wrapper {
|
||
position: absolute;
|
||
top: 48px;
|
||
left: 0;
|
||
right: 0;
|
||
z-index: 999;
|
||
text-align: center;
|
||
background-color: #333;
|
||
width: 100%;
|
||
}
|
||
.menu-wrapper.hidden {
|
||
-webkit-transform: translate3d(0, -100%, 0);
|
||
transform: translate3d(0, -100%, 0);
|
||
z-index: -1;
|
||
}
|
||
.menu {
|
||
width: 100%;
|
||
}
|
||
.menu .mui-table-view-inverted {
|
||
color: gray;
|
||
font-size: 19px;
|
||
}
|
||
.menu .mui-table-view-inverted .mui-table-view-cell:after {
|
||
height: 2px;
|
||
left: 0;
|
||
right: 0;
|
||
}
|
||
.menu-wrapper.mui-active,
|
||
.menu-wrapper.mui-active .menu {
|
||
-webkit-transform: translate3d(0, 0, 0);
|
||
transform: translate3d(0, 0, 0);
|
||
}
|
||
#info{
|
||
padding: 20px 10px ;
|
||
}
|
||
</style>
|
||
</head>
|
||
|
||
<body>
|
||
<header class="mui-bar mui-bar-nav">
|
||
<a id="icon-menu" class="mui-action-menu mui-icon mui-icon-bars mui-pull-left"></a>
|
||
<a class="mui-action-back mui-btn mui-btn-link mui-pull-right">关闭</a>
|
||
<h1 class="mui-title">div模式下拉菜单</h1>
|
||
</header>
|
||
<div class="mui-content">
|
||
<div class="mui-content-padded" >
|
||
<p>这是div模式下沉菜单示例,主页面和菜单在一个HTML文件中,
|
||
|
||
当前页面为主界面,你可以在主界面放置任何内容;
|
||
打开侧滑菜单有多种方式: 1、点击页面左上角的
|
||
<span class="mui-icon mui-icon-bars"></span> 图标;
|
||
2、通过JS API触发(例如点击如下蓝色按钮体验);
|
||
<span class="android-only">3、Android手机按menu键;</span>
|
||
</p>
|
||
<p style="padding: 5px 20px;margin-bottom: 5px;">
|
||
<button id="menu-btn" type="button" class="mui-btn mui-btn-primary mui-btn-block" style="padding: 10px;">
|
||
显示下拉菜单
|
||
</button>
|
||
</p>
|
||
<div id="info"></div>
|
||
</div>
|
||
|
||
</div>
|
||
<div id="menu-wrapper" class="menu-wrapper hidden">
|
||
<div id="menu" class="menu">
|
||
<ul class="mui-table-view mui-table-view-inverted">
|
||
<li class="mui-table-view-cell">
|
||
<a href="javascript:;">Item 1</a>
|
||
</li>
|
||
<li class="mui-table-view-cell">
|
||
<a href="javascript:;">Item 2</a>
|
||
</li>
|
||
<li class="mui-table-view-cell">
|
||
<a href="javascript:;">Item 3</a>
|
||
</li>
|
||
<li class="mui-table-view-cell">
|
||
<a href="javascript:;">Item 4</a>
|
||
</li>
|
||
<li class="mui-table-view-cell">
|
||
<a href="javascript:;">Item 5</a>
|
||
</li>
|
||
<li class="mui-table-view-cell">
|
||
<a href="javascript:;">Item 6</a>
|
||
</li>
|
||
<li class="mui-table-view-cell">
|
||
<a href="javascript:;">Item 7</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div id="menu-backdrop" class="menu-backdrop"></div>
|
||
<script src="../js/mui.min.js"></script>
|
||
<script>
|
||
mui.init({
|
||
swipeBack:true //启用右滑关闭功能
|
||
});
|
||
var menuWrapper = document.getElementById("menu-wrapper");
|
||
var menu = document.getElementById("menu");
|
||
var menuWrapperClassList = menuWrapper.classList;
|
||
var backdrop = document.getElementById("menu-backdrop");
|
||
var info = document.getElementById("info");
|
||
|
||
backdrop.addEventListener('tap', toggleMenu);
|
||
document.getElementById("menu-btn").addEventListener('tap', toggleMenu);
|
||
document.getElementById("icon-menu").addEventListener('tap',toggleMenu)
|
||
//下沉菜单中的点击事件
|
||
mui('#menu').on('tap', 'a', function() {
|
||
toggleMenu();
|
||
info.innerHTML = '你已选择:'+this.innerHTML;
|
||
});
|
||
var busying = false;
|
||
|
||
function toggleMenu() {
|
||
if (busying) {
|
||
return;
|
||
}
|
||
busying = true;
|
||
if (menuWrapperClassList.contains('mui-active')) {
|
||
document.body.classList.remove('menu-open');
|
||
menuWrapper.className = 'menu-wrapper fade-out-up animated';
|
||
menu.className = 'menu bounce-out-up animated';
|
||
setTimeout(function() {
|
||
backdrop.style.opacity = 0;
|
||
menuWrapper.classList.add('hidden');
|
||
}, 500);
|
||
} else {
|
||
document.body.classList.add('menu-open');
|
||
menuWrapper.className = 'menu-wrapper fade-in-down animated mui-active';
|
||
menu.className = 'menu bounce-in-down animated';
|
||
backdrop.style.opacity = 1;
|
||
}
|
||
setTimeout(function() {
|
||
busying = false;
|
||
}, 500);
|
||
}
|
||
</script>
|
||
</body>
|
||
|
||
</html> |