Vue-Lazyload

by kabanoki

HTML

<script src="https://unpkg.com/[email protected]/vue-lazyload.js"></script>
<ul id="app">
  <li v-for="img in items">
    <img v-lazy="img.path" >
  </li>
</ul>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js"></script>

CSS

#app {
  width: 100%;
  float:left;
  text-decoration: none;
  padding : 0;
}

#app li {
  width: 18%;
  float:left;
  padding: 5px;
  list-style:none;
}

#app li img{
  width: 100%;
}

Vue

var items = [];

for(var i=1;i<1500; i++)
{
  items.push({
    no: i,
    path: 'https://dummyimage.com/600x600/fcc/000.png&text=Uploaded'+i
  });
}

Vue.use(VueLazyload, {
  preLoad: 1.3,
  error: 'https://dummyimage.com/130x120/ccc/999.png&text=Not+Found',
  loading: 'https://dummyimage.com/130x120/dcdcdc/999.png&text=Now loading',
  attempt: 1
});
 
new Vue({
  el: '#app',
  data: {
    items: items
  }
});