上路抗压,野爹常来

vue瀑布流布局

Vue 瀑布流

安装

npm install --save vue-waterfall2

main.js引入

import waterfall from 'vue-waterfall2'
Vue.use(waterfall)

HTML部分

<div class="container-water-fall">
  <waterfall :col='col' :width="itemWidth" :gutterWidth="gutterWidth" :data="dataList" @loadmore="loadmore" @scroll="scroll">
    <template>
      <div class="cell-item" v-for="(item,index) in dataList" :key="index" @click="handelRouter(item.id)">
        <img v-if="item.photo" :src="item.photo" alt="加载错误" />
        <div class="item-body">
          <div class="item-descA">{{item.title}}</div>
          <div class="item-descB">{{item.class}}</div>
        </div>
      </div>
    </template>
  </waterfall>
</div>

data

data(){
  return{
    dataList:[],
    col:'2',
    page:1
  }
}

computed: {
  itemWidth() {
    return (334 * 0.5 * (document.documentElement.clientWidth / 375))?
    //rem布局 计算列宽度
    //可以根据自己的rem设置修改这里的 334 值
  },
  gutterWidth() {
    return (36 * 0.5 * (document.documentElement.clientWidth / 375))?
    //rem布局 计算x轴方向margin(y轴方向的margin自定义在css中即可)
    //可以根据自己的rem设置修改这里的 36 值
  },
},
methods: {
  //布局
  scroll(scrollData) {
    // console.log(scrollData)
  },
  switchCol(col) {
    this.col = col
    // console.log(this.col)
  },
  loadmore(index) {
    //这里是当滑动到底部时,再次请求接口,并且传page,返回的数据给dataList赋值
    //简单粗暴的有了分页功能
  }
}

css

.container-water-fall{
  padding: 10px 3%;
  width: 100vw;
  box-sizing: border-box;
}
.cell-item{
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-sizing: border-box;
  margin: 15% 0;
  img{
    width: 100%;
    height: auto;
    display: block;
  }
}

.item-descA{
  font-size: 17px;
  color: rgba(46, 44, 42, 1);
  line-height: 17px;
  font-weight: bold;
  margin: 11.5px 0 13px 9px;
}

.item-descB{
  font-size: 12px;
  font-weight: 500;
  color: rgba(89, 89, 89, 1);
  line-height: 17px;
  margin: 11.5px 0 13px 9px;
}

.item-footer{
  margin-top: 22px;
  position: relative;
  display: flex;
  align-items: center;
}

.name{
  max-width: 150px;
  margin-left: 10px;
  font-size: 14px;
  color: #999;
}

.tech-list-ll .tab-bottom{
  padding: 10px 0 !important;
  height: 0 !important;
  background: #fafafa !important;
}

请根据具体需求进行更改!!!

凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数

posted @ 2020-12-09 11:36  上路抗压  阅读(831)  评论(0编辑  收藏  举报