vue-justified-layout
Vue integration for Flickr's justified layout module.
Getting started
It's pretty easy to setup, just download the component with your favorite package manager.
npm install vue-justified-layout
Register the component globally using the plugin installation function.
import Vue from 'vue'
import VueJustifiedLayout from 'vue-justified-layout'
Vue.use(VueJustifiedLayout)
Or import it into your scripts and register it as local component.
import VueJustifiedLayout from 'vue-justified-layout'
export default {
name: 'app',
components: {VueJustifiedLayout},
data () {
return {
images: [{
width: 250,
height: 400,
url: 'https://source.unsplash.com/featured/250x400?green,blue'
}, {
width: 300,
height: 400,
url: 'https://source.unsplash.com/featured/300x400?green,blue'
}]
}
}
}
Optionally add some style for the images.
.justified-container {}
.justified-item {
img {
max-width: 100%;
}
}
Then use it to display the array of images with a nice justified layout.
<VueJustifiedLayout :items="images" v-slot="{ item }">
<img :src="item.url" />
</VueJustifiedLayout>
Or for vue < 2.6.0
versions using the old synthax.
<VueJustifiedLayout :items="images">
<template slot-scope="{ item }">
<img :src="item.url" />
</template>
</VueJustifiedLayout>