H5CityList
功能描述
H5CityList 模块是一个可定制数据源的城市列表;模块根据数据源自动生成字母索引,点击字母索引快速滚动至目标数据,支持数据源搜索;用于实现城市列表的展示,搜索,及导航功能。
依赖的模块
./libs/convert-pinyin.js // 获取拼音
./libs/vue.min.js
./libs/bscroll.min.js
快速使用
<div id="app" class="listview" ref="listview">
<div ref="wrapper" style="height: 100%;position: relative;">
<ul>
<li v-for="(group,index) in cityList" class="list-group" ref="listGroup">
<h2 class="list-group-title" v-show="group.title">{{group.title}}</h2>
<uL>
<li @click="selectItem(item)" v-for="item in group.items" class="list-group-item">
<span class="name">{{item.name}}</span>
</li>
</uL>
</li>
</ul>
</div>
</div>
app = new Vue({
el: '#app',
data: {
diff: -1,
cityList: [],
keyword: '', // 搜索关键词
refreshDelay: 20,
ANCHOR_HEIGHT: 18,
scrollY: -1,
currentIndex: 0,
TITLE_HEIGHT: 30, // title的高度,需要和css配合
},
created: function () {
that = this;
that.resouseLists = cityList; //原始城市数据,可从ajax获取
that.initCityList(that.resouseLists);
that.touch = {};
that.listHeight = [];
},
mounted: function () {
setTimeout(function () {
that._initScroll()
}, 20);
setTimeout(function () {
that._calculateHeight()
}, 20);
},
methods: {
// 初始化城市数据获取需要的数字对象
initCityList: function (list) {...},
初始化滚动
_initScroll: function () {...},
初始化滚动区域高度
_calculateHeight: function () {...},
},
})
特别说明
将H5CityList.html直接用浏览器打开,就可以运行本模块。可以用win获取frame加载本模块。样式可以在H5CityList.css中修改,但请保持原有的dom结构(除非你明确自己想要什么)。引入的cityList.js仅作为测试数据,实际数据请从服务器获取。更多使用方法,可参考H5CityList.html。