//1.1导入Mint-UI中 图片懒加载组件
import { Lazyload } from 'mint-ui';
Vue.use(Lazyload);
Lazy load
图片懒加载指令。
引入
import { Lazyload } from 'mint-ui';
Vue.use(Lazyload);
例子
为 img 元素添加 v-lazy 指令,指令的值为图片的地址。同时需要设置图片在加载时的样式。
<ul>
<li v-for="item in list">
<img v-lazy="item">
</li>
</ul>
image[lazy=loading] {
40px;
height: 300px;
margin: auto;
}
若列表不在 window 上滚动,则需要将被滚动元素的 id 属性以修饰符的形式传递给 v-lazy 指令
<div id="container">
<ul>
<li v-for="item in list">
<img v-lazy.container="item">
</li>
</ul>
</div>
-------------------------------------------------------------------------------------------
<li>------------positition: relation
文字-------.info {
position: absolute;
bottom: 0;
}
设置文字的最大高度
max-height: 84px;
tag="li"--------------由于vue 需要路由跳转,所以将 li标签换成<router-link>标签‘
所以要指定一下tag
<!-- 图片的列表区域 --> <ul class="lazyul"> <router-link tag="li" v-for="item in photolist" :key="item.id" :to="'/home/photoinfo/' + item.id"> <!-- 注意: v-lazy 要指定图片的地址 --> <img v-lazy="item.img_url"> <div class="info"> <h1 class="info-title">{{ item.title }}</h1> <div class="info-content">{{ item.zhaiyao }}</div> </div> </router-link> </ul>
<style>
.lazyul {
margin: 0;
padding: 10px;
li {
background-color: #ccc;
text-align: center;
box-shadow: 0 0 7px gray;
position: relative;
& + li {
// 这种样式的写法,适合场景: 排除第一个,应用给其它所有的li
margin-top: 10px;
}
img {
vertical-align: middle;
100%;
}
img[lazy="loading"] {
40px;
height: 300px;
margin: auto;
}
}
}
.info {
position: absolute;
bottom: 0;
color: #fff;
background-color: rgba(0, 0, 0, 0.5);
max-height: 86px;
overflow: hidden;
.info-title {
font-size: 14px;
}
.info-content {
font-size: 13px;
text-align: left;
text-indent: 2em;
}
}
</style>