vue图片懒加载

main.js

import Vue from 'vue'
import App from './App'
import router from './router'
import VueLazyload from 'vue-lazyload'

Vue.use(VueLazyload,{
  error:'./static/resources/1.jpg',
  loading:'./static/resources/2.gif',
})

Vue.config.productionTip = false

new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>',
})

index.vue

<template>
  <div class="index">
    <div>
      <span class="text">图片懒加载测试</span>
    </div>
    <div class="imgBox">
      <div class="imgItem"><img class="w100Pct" v-lazy="imgPath1" /></div>
      <div class="imgItem"><img class="w100Pct" v-lazy="imgPath2" /></div>
      <div class="imgItem"><img class="w100Pct" v-lazy="imgPath3" /></div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      imgPath1: "/static/resources/5.jpg", //图片在static文件夹下面
      imgPath2: "/static/resources/3.jpg",
      imgPath3: "/static/resources/4.jpg"
    };
  }
};
</script>

<style lang="scss" scoped>
img[lazy="loading"] {
  // 加载中图片样式
  width: 32px !important;
  height: 32px !important;
}
img[lazy="error"] {
  // error图片样式
}
img[lazy="loaded"] {
  // 已加载图片样式
}

// sass 定义的变量
$w100Pct: 100%;
$h100Pct: 100%;

.index {
  width: 1200px;
  height: 600px;
}
// sass样式嵌套
.imgBox {
  width: $w100Pct;
  height: $h100Pct;
  background-color: #a51;
  .w100Pct {
    width: $w100Pct;
    height: $h100Pct;
  }
  .imgItem {
    display: flex;
    align-items: center;
    justify-content: center;
    width: $w100Pct;
    height: $h100Pct;
  }
}
</style>

 资源文件(图片)在static下

实现效果(加载中)

 实现效果(加载完成)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值