视图层代码
<ul class = "flowBox">
<li
v-for = "(item , index) of list"
:id = "index"
:key = "index"
>
// 渲染左边和右边的数据
<div
v-for = "data of item"
:key="data.id"
class="listItem"
>
</div>
</li>
</ul>
<div v-if="ifLoading">加载中</div>
<div v-else-if>-没有更多了-</div>
vue 逻辑代码
list:[[],[]],
isLoading: false,
isMore: true
renderList(res) {
for(let i = 0; i<this.dataList.length ; i++) {
let leftHeight = parseIn(Window.getComputedStyle(leftList, null).getPropertyValue('heught'));
let rightHeight = parseIn(Window.getComputedStyle(rightList,null)).getPropertyValue('height');
if(this.dataList[i].ext) {
await this.loading(this.dataList[i].ext.picture);
}
if(letftListHeight === 0 && rightListHeight === 0) {
letftListHeight = leftList.offsetHeight;
rightListHeight = rightList.offsetHeight;
}
if(leftListHeight === rightListHeight) {
this.list[0].push(this.dataList[i]);
}
if(leftListHeight > rightListHeight) {
this.list[1].push(this.dataList[i]);
}
if(leftListHeight < rightListHeight) {
this.list[0].push(this.dataList[i]);
}
if(!this.hasAddMin && res && res.length > 0) {
this.hasAddMine = true;
this.list[0].unshift(res[0]);
}
this.list = [...this.list];
this.ifLoading = true
await this .$nextTick();
}
}
loadImg(url) {
return new Promise((resovle,reject)=> {
let img = new Image();
img.addEventListener('load',(e)=> {
resolve(img.height);
});
img .addEventListener('error',()=> {
reject(200);
});
img.src
})
}
scrollFn() {
let scrollHeight = $container.scrollHeight;
let clientHeight = $container.clientHeight;
let scrollTop = $container.scrollTop;
if(scrollHeight -parseInt(clientHeight + scrollTop)) {
}
}