其他分享
首页 > 其他分享> > 【无标题】

【无标题】

作者:互联网


```<template>  <div>    <ul class="flowBox clearfix">      <!-- 定义列数 -->      <li v-for="(item, index) of list" :key="index">        <a v-for="data of item" :key="data.id">          <div><img :src="data.pic" alt="" /></div>          <span>{{ data.title }}</span>          <span>{{ data.id }}</span>        </a>      </li>    </ul>  </div></template><script>export default {  data() {    return {      list: [[], []],      height: new Array(2).fill(0),      // 模拟后台返会的数据      dataList: [        {          id: 1,          pic: "https://hbimg.huabanimg.com/a402f655432def0c8b03a4057780e7aec2d22eee1b6e7-KjNCiv_fw658/format/webp",          title:            "泰勒·斯威夫特(Taylor Swift),1989年12月13日出生于美国宾州,美国歌手、演员。2006年出道,同年发行专辑《泰勒·斯威夫特》,该专辑获得美国唱片业协会的白金唱片认证",          link: "https://baike.sogou.com/v1850208.htm?fromTitle=%E9%9C%89%E9%9C%89",        },        {          id: 2,          pic: "https://hbimg.huabanimg.com/a402f655432def0c8b03a4057780e7aec2d22eee1b6e7-KjNCiv_fw658/format/webp",          title:            "泰勒·斯威夫特(Taylor Swift),1989年12月13日出生于美国宾州,美国歌手、演员。2006年出道,同年发行专辑《泰勒·斯威夫特》,该专辑获得美国唱片业协会的白金唱片认证",          link: "https://baike.sogou.com/v1850208.htm?fromTitle=%E9%9C%89%E9%9C%89",        },        {          id: 3,          pic: "https://hbimg.huabanimg.com/a402f655432def0c8b03a4057780e7aec2d22eee1b6e7-KjNCiv_fw658/format/webp",          title:            "泰勒·斯威夫特(Taylor Swift),1989年12月13日出生于美国宾州,美国歌手、演员。2006年出道,同年发行专辑《泰勒·斯威夫特》,该专辑获得美国唱片业协会的白金唱片认证",          link: "https://baike.sogou.com/v1850208.htm?fromTitle=%E9%9C%89%E9%9C%89",        },        {          id: 4,          pic: "https://hbimg.huabanimg.com/868e6f829053064a47c6ec8a0f7af4d778a513831f803-iS9Ynx_fw658/format/webp",          title:            "泰勒·斯威夫特(Taylor Swift),1989年12月13日出生于美国宾州,美国歌手、演员。2006年出道,同年发行专辑《泰勒·斯威夫特》,该专辑获得美国唱片业协会的白金唱片认证",          link: "https://baike.sogou.com/v1850208.htm?fromTitle=%E9%9C%89%E9%9C%89",        },        {          id: 5,          pic: "https://hbimg.huabanimg.com/868e6f829053064a47c6ec8a0f7af4d778a513831f803-iS9Ynx_fw658/format/webp",          title:            "泰勒·斯威夫特(Taylor Swift),1989年12月13日出生于美国宾州,美国歌手、演员。2006年出道,同年发行专辑《泰勒·斯威夫特》,该专辑获得美国唱片业协会的白金唱片认证",          link: "https://baike.sogou.com/v1850208.htm?fromTitle=%E9%9C%89%E9%9C%89",        },        {          id: 6,          pic: "img/7.jpg",          title:            "泰勒·斯威夫特(Taylor Swift),1989年12月13日出生于美国宾州,美国歌手、演员。2006年出道,同年发行专辑《泰勒·斯威夫特》,该专辑获得美国唱片业协会的白金唱片认证",          link: "https://baike.sogou.com/v1850208.htm?fromTitle=%E9%9C%89%E9%9C%89",        },        {          id: 7,          pic: "img/2.jpg",          title:            "泰勒·斯威夫特(Taylor Swift),1989年12月13日出生于美国宾州,美国歌手、演员。2006年出道,同年发行专辑《泰勒·斯威夫特》,该专辑获得美国唱片业协会的白金唱片认证",          link: "https://baike.sogou.com/v1850208.htm?fromTitle=%E9%9C%89%E9%9C%89",        },        {          id: 8,          pic: "img/7.jpg",          title:            "泰勒·斯威夫特(Taylor Swift),1989年12月13日出生于美国宾州,美国歌手、演员。2006年出道,同年发行专辑《泰勒·斯威夫特》,该专辑获得美国唱片业协会的白金唱片认证",          link: "https://baike.sogou.com/v1850208.htm?fromTitle=%E9%9C%89%E9%9C%89",        },        {          id: 9,          pic: "img/8.jpg",          title:            "泰勒·斯威夫特(Taylor Swift),1989年12月13日出生于美国宾州,美国歌手、演员。2006年出道,同年发行专辑《泰勒·斯威夫特》,该专辑获得美国唱片业协会的白金唱片认证",          link: "https://baike.sogou.com/v1850208.htm?fromTitle=%E9%9C%89%E9%9C%89",        },        {          id: 10,          pic: "img/1.jpg",          title:            "泰勒·斯威夫特(Taylor Swift),1989年12月13日出生于美国宾州,美国歌手、演员。2006年出道,同年发行专辑《泰勒·斯威夫特》,该专辑获得美国唱片业协会的白金唱片认证",          link: "https://baike.sogou.com/v1850208.htm?fromTitle=%E9%9C%89%E9%9C%89",        },        {          id: 11,          pic: "img/3.jpg",          title:            "泰勒·斯威夫特(Taylor Swift),1989年12月13日出生于美国宾州,美国歌手、演员。2006年出道,同年发行专辑《泰勒·斯威夫特》,该专辑获得美国唱片业协会的白金唱片认证",          link: "https://baike.sogou.com/v1850208.htm?fromTitle=%E9%9C%89%E9%9C%89",        },        {          id: 12,          pic: "img/11.jpg",          title:            "泰勒·斯威夫特(Taylor Swift),1989年12月13日出生于美国宾州,美国歌手、演员。2006年出道,同年发行专辑《泰勒·斯威夫特》,该专辑获得美国唱片业协会的白金唱片认证",          link: "https://baike.sogou.com/v1850208.htm?fromTitle=%E9%9C%89%E9%9C%89",        },        {          id: 13,          pic: "img/6.jpg",          title:            "泰勒·斯威夫特(Taylor Swift),1989年12月13日出生于美国宾州,美国歌手、演员。2006年出道,同年发行专辑《泰勒·斯威夫特》,该专辑获得美国唱片业协会的白金唱片认证",          link: "https://baike.sogou.com/v1850208.htm?fromTitle=%E9%9C%89%E9%9C%89",        },        {          id: 14,          pic: "img/3.jpg",          title:            "泰勒·斯威夫特(Taylor Swift),1989年12月13日出生于美国宾州,美国歌手、演员。2006年出道,同年发行专辑《泰勒·斯威夫特》,该专辑获得美国唱片业协会的白金唱片认证",          link: "https://baike.sogou.com/v1850208.htm?fromTitle=%E9%9C%89%E9%9C%89",        },        {          id: 15,          pic: "",          title:            "泰勒·斯威夫特(Taylor Swift),1989年12月13日出生于美国宾州,美国歌手、演员。2006年出道,同年发行专辑《泰勒·斯威夫特》,该专辑获得美国唱片业协会的白金唱片认证",          link: "https://baike.sogou.com/v1850208.htm?fromTitle=%E9%9C%89%E9%9C%89",        },        {          id: 16,          pic: "",          title:            "泰勒·斯威夫特(Taylor Swift),1989年12月13日出生于美国宾州,美国歌手、演员。2006年出道,同年发行专辑《泰勒·斯威夫特》,该专辑获得美国唱片业协会的白金唱片认证",          link: "https://baike.sogou.com/v1850208.htm?fromTitle=%E9%9C%89%E9%9C%89",        },        {          id: 17,          pic: "",          title:            "泰勒·斯威夫特(Taylor Swift),1989年12月13日出生于美国宾州,美国歌手、演员。2006年出道,同年发行专辑《泰勒·斯威夫特》,该专辑获得美国唱片业协会的白金唱片认证",          link: "https://baike.sogou.com/v1850208.htm?fromTitle=%E9%9C%89%E9%9C%89",        },        {          id: 18,          pic: "",          title:            "泰勒·斯威夫特(Taylor Swift),1989年12月13日出生于美国宾州,美国歌手、演员。2006年出道,同年发行专辑《泰勒·斯威夫特》,该专辑获得美国唱片业协会的白金唱片认证",          link: "https://baike.sogou.com/v1850208.htm?fromTitle=%E9%9C%89%E9%9C%89",        },        {          id: 19,          pic: "https://hbimg.huabanimg.com/868e6f829053064a47c6ec8a0f7af4d778a513831f803-iS9Ynx_fw658/format/webp",          title:            "泰勒·斯威夫特(Taylor Swift),1989年12月13日出生于美国宾州,美国歌手、演员。2006年出道,同年发行专辑《泰勒·斯威夫特》,该专辑获得美国唱片业协会的白金唱片认证",          link: "https://baike.sogou.com/v1850208.htm?fromTitle=%E9%9C%89%E9%9C%89",        },        {          id: 20,          pic: "",          title:            "泰勒·斯威夫特(Taylor Swift),1989年12月13日出生于美国宾州,美国歌手、演员。2006年出道,同年发行专辑《泰勒·斯威夫特》,该专辑获得美国唱片业协会的白金唱片认证",          link: "https://baike.sogou.com/v1850208.htm?fromTitle=%E9%9C%89%E9%9C%89",        },      ],    };  },  methods: {    async renderList() {      // 对数据循环添加到列中      // let nodes = [].slice.call(document.querySelectorAll(".flowBox > li"));      for (let i = 0; i < this.dataList.length; i++) {        // 找到最小高度添加        let minHeight = Math.min(...this.height);        let minIndex = this.height.indexOf(minHeight);        console.log("最小高度:" + minHeight, "下标:" + minIndex, this.height);        this.list[minIndex].push(this.dataList[i]);        let imgHeight = 200;        if (this.dataList[i].pic) {          imgHeight = await this.loadImg(this.dataList[i].pic);        }        // let imgHeight = await this.loadImg(this.dataList[i].pic);        // 强制更新        this.$set(this.height, minIndex, this.height[minIndex] + imgHeight);      }    },    loadImg(url) {      return new Promise((resolve,reject) => {        let img = new Image();        img.addEventListener("load", () => {          resolve(img.height);        });         img.addEventListener("error", () => {          resolve(200)          reject(200);        });        img.src = url;      });          },  },  mounted() {    this.renderList();  },};</script><style lang="scss">li {  list-style: none;}html,body {  background: #f4f4f4;  overflow-x: hidden;}.flowBox {  margin: 20px auto;  width: 660px;}.flowBox li {  float: left;  margin-right: 20px;  width: 320px;}.flowBox li:nth-last-child(1) {  margin-right: 0;}.flowBox li a {  display: block;  margin-bottom: 10px;  padding: 10px;  background: #fff;  box-shadow: 3px 3px 10px 0 #666;}.flowBox li a div img {  display: block;  width: 100%;}.flowBox li a span {  display: block;  margin-top: 10px;  font-size: 12px;  color: #555;  line-height: 20px;}</style>

标签:泰勒,E9%,专辑,无标题,斯威夫特,com,9C%
来源: https://blog.csdn.net/luckyboy14/article/details/121739561