城市列表:当前城市、热门城市、城市列表
//分3个模块,当前城市, 热门城市,字母顺序
<template>
<div class="list">
<div class="area">
<div class="title border-topbottom">当前城市</div>
<div class="button-list">
<div class="button-wrapper">
<div class="button">北京</div>
</div>
</div>
</div>
<div class="area">
<div class="title border-topbottom">热门城市</div>
<div class="button-list">
<div class="button-wrapper">
<div class="button">北京</div>
</div>
<div class="button-wrapper">
<div class="button">北京</div>
</div>
<div class="button-wrapper">
<div class="button">北京</div>
</div>
<div class="button-wrapper">
<div class="button">北京</div>
</div>
<div class="button-wrapper">
<div class="button">北京</div>
</div>
<div class="button-wrapper">
<div class="button">北京</div>
</div>
<div class="button-wrapper">
<div class="button">北京</div>
</div>
<div class="button-wrapper">
<div class="button">北京</div>
</div>
<div class="button-wrapper">
<div class="button">北京</div>
</div>
</div>
</div>
<div class="area">
<div class="title border-topbottom">A</div>
<div class="item-list">
<div class="item border-bottom">阿拉尔</div>
<div class="item border-bottom">阿拉尔</div>
<div class="item border-bottom">阿拉尔</div>
<div class="item border-bottom">阿拉尔</div>
<div class="item border-bottom">阿拉尔</div>
<div class="item border-bottom">阿拉尔</div>
</div>
<div class="title border-topbottom">A</div>
<div class="item-list">
<div class="item border-bottom">阿拉尔</div>
<div class="item border-bottom">阿拉尔</div>
<div class="item border-bottom">阿拉尔</div>
<div class="item border-bottom">阿拉尔</div>
<div class="item border-bottom">阿拉尔</div>
<div class="item border-bottom">阿拉尔</div>
</div>
<div class="title border-topbottom">A</div>
<div class="item-list">
<div class="item border-bottom">阿拉尔</div>
<div class="item border-bottom">阿拉尔</div>
<div class="item border-bottom">阿拉尔</div>
<div class="item border-bottom">阿拉尔</div>
<div class="item border-bottom">阿拉尔</div>
<div class="item border-bottom">阿拉尔</div>
</div>
<div class="title border-topbottom">A</div>
<div class="item-list">
<div class="item border-bottom">阿拉尔</div>
<div class="item border-bottom">阿拉尔</div>
<div class="item border-bottom">阿拉尔</div>
<div class="item border-bottom">阿拉尔</div>
<div class="item border-bottom">阿拉尔</div>
<div class="item border-bottom">阿拉尔</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'CityList'
}
</script>
<style lang="stylus" scoped>
@import '~styles/varibles.styl'
// 复写border.css中的 .border-topbottom的样式
.border-topbottom
&:before
border-color: #ccc
&:after
border-color: #ccc
// 复写border.css中的 .border-bottom的样式
.border-bottom
&:before
border-color: #ccc
.list
//list这个类主要作用是 固定标题。也就是说使List组件的顶部外边距腾出固定的位置显示Header和Search组件
//这样滚动的时候会一直保留在头部
overflow: hidden
position: absolute
top: 1.58rem
left: 0
right: 0
bottom: 0
.title
line-height: .44rem
background: #eee
padding-left: .2rem
color: #666
font-size: .26rem
.button-list
//不添加overflow: hidden的话 下面的button就撑不起这个高度。具体原因未知 = =回头在研究吧 因为不知道要咋问
overflow: hidden
//右边留出30px左右的像素空间是给字母表预留的
padding: .1rem .6rem .1rem .1rem
.button-wrapper
float: left
width: 33.33%
.button
margin: .1rem
padding: .1rem 0
text-align: center
border: .02rem solid #ccc
border-radius: .06rem
.item-list
.item
line-height: .76rem
padding-left: .2rem
</style>
上边的样式中由于添加了如下代码,导致整个页面不能滚动
.list
overflow: hidden
position: absolute
关闭原页面滚动的目的是为了添加更加高级的滚动
1、添加第三方滚动组件:better-scroll 这个组件能够帮我们实现上下滚动页面的样式
https://github.com/ustbhuangyi/better-scroll
2、使用方式
①先安装 npm install better-scroll --save
②然后根据GitHub文档要求在list类的div元素外再包裹一层div标签
③导入better-scroll
根据文档的说明 使用better-scroll 其实是创建Bscroll对象。而这个对象需要传入一个DOM:
所以需要先获取到页面的DON元素内容
<template>
<div class="list" ref="wrapper">
<div>
接着创建该对象
<script>
import Bscroll from 'better-scroll'
export default {
name: 'CityList',
mounted () {
this.scroll = new Bscroll(this.$refs.wrapper)
}
}
</script>
这样就完成了页面滚动的优化