前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vue瀑布流最简单实用的(全网最好用)

Vue瀑布流最简单实用的(全网最好用)

作者头像
stys35
发布2020-11-27 15:28:32
2.6K0
发布2020-11-27 15:28:32
举报
文章被收录于专栏:工作笔记精华工作笔记精华
代码语言:javascript
复制
吊打
vue-waterfall、vue-waterfall-easy 一切框架


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0">

    <style type="text/css">
        #fall-list {
            position: relative;
        }
        #fall-list .fall-line {
            float: left;
            width: 50%;
        }
        #fall-list .fall-item {
            width: 96%;
            margin: 5px auto;
            background-color: #fff
        }
        #fall-list .fall-item img {
            width: 100%;
        }
    </style>
</head>
<body>

<div id="app">
    <button @click="loadImagex">加载</button>
    <div id="fall-list" class="clearfix">
        <div ref="line1" class="fall-line">
            <div class="fall-item" v-for="(src, index) in data1" :key="index">
                <img :src="src">
            </div>
        </div>

        <div ref="line2" class="fall-line">
            <div class="fall-item" v-for="(src, index) in data2" :key="index">
                <img :src="src">
            </div>
        </div>
    </div>

</div>

<script src="../../../assets/vue/vue.js"></script>
<script>

    var app = new Vue({
        el: '#app',
        components: {},
        props: {},
        data: function () {
            return {
                data1: [],
                data2: [],
            }
        },
        computed: {},
        watch: {},
        mounted: function () {
            var self = this;
            this.loadImagex()
        },
        methods: {
            //读取图片
            loadImagex() {
                let size = ['300x660', '300x300', '300x350', '300x200', '300x310', '300x470', '300x500', '300x510', '300x200'];
                let color = ['E97452', '4C6EB4', '449F93', 'D25064', 'E59649', '4C6EB4', '449F93', 'D25064', 'E59649'];

                let imgList = [];
                for (let i = 0; i < size.length; i++) {
                    let url = `http://dummyimage.com/${size[i]}/${color[i]}`
                    imgList.push(url);
                }

                this.doSort(0, imgList);
            },
            doSort(index, list) {
                if(index < list.length) {
                    if(this.$refs.line1.offsetHeight <= this.$refs.line2.offsetHeight) {
                        this.data1.push(list[index]);
                    } else {
                        this.data2.push(list[index]);
                    }
                    let that = this;
                    this.$nextTick(() => {
                        setTimeout(() => {
                            that.doSort(index+1, list);
                        }, 400);
                    })
                }
            },

        },
    })
</script>
</body>
</html>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档