Vue学习笔记-项目开发3.4多列表显示(城市列表)

城市列表:当前城市、热门城市、城市列表

//分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>

这样就完成了页面滚动的优化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值