简单使用 NavigationView
这个demo定义了两个View类来显示内容,IndexView为首页,TbDetailView为详情页。并利用了 scroll-view 和 scroll-view/plugin/scrollbar 两个模块来使得页面能够滚动显示。
请在移动浏览器或打开chrome开发人员工具模拟移动浏览器查看demo。
Source
Output
QRCode
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">
<link href="//g.alicdn.com/kissy/k/5.0.1/css/base.css" rel="stylesheet"/>
<link href="//g.alicdn.com/kissy/k/5.0.1/navigation-view/assets/dpl.css" rel="stylesheet">
<link href="//g.alicdn.com/kissy/k/5.0.1/scroll-view/assets/dpl.css" rel="stylesheet"/>
<style>
html, body {
height: 100%;
}
.wrap {
display: -webkit-box;
height: 100%;
}
.wrap .list-item{
padding: 10px;
border: 1px solid #000000;
}
.wrap .detail{
margin-top: 50px;
text-align: center;
font-size: 20px;
font-weight: bold;
}
</style>
</head>
<body>
<div class="wrap">
</div>
<script src="//g.alicdn.com/kissy/k/5.0.1/seed-debug.js"></script>
<script>
require(['navigation-view','navigation-view/bar','node','scroll-view','scroll-view/plugin/scrollbar'],function (NavigationView, Bar, $, ScrollView, ScrollBar) {
var win = $(window);
var navigationView = new NavigationView({
render: '.wrap'
}).render();
var bar = new Bar({
navigationView: navigationView,
elBefore: navigationView.get('contentEl')
}).render();
var TbDetailView = ScrollView.extend({}, {
xclass: 'tb-detail-view',
ATTRS: {
plugins: [ScrollBar]
}
});
var IndexView = ScrollView.extend({
bindUI: function () {
this.get('contentEl').delegate('click', '.list-item', this.onSelect, this);
},
onSelect: function (e) {
var content = e.currentTarget.innerHTML;
navigationView.push({
xclass: 'tb-detail-view',
content: '<div class="detail">This is ' + content + ' detail!</div>',
animation : ['slide-top', 'slide-bottom'] //使用动画效果切换视图
});
},
enter: function () {
this.sync();
win.on('resize', this.sync, this);
},
leave: function () {
win.detach('resize', this.sync, this);
},
createDom: function () {
var ret = [];
for (var i = 0; i < 20; i++) {
ret.push('<div class="list-item">' + i + '</div>');
}
this.get('contentEl').html(ret.join(''));
}
}, {
xclass: 'tb-index-view',
ATTRS: {
plugins: [ScrollBar]
}
});
navigationView.push({
xclass: 'tb-index-view'
});
});
</script>
</body>
</html>