直接上代码:
<div v-for="img in waterfallList" :key="img.id" class="v-waterfall-item" :title='img.title' :style="{top:img.top+'px',left:img.left+'px',width:imageWidth+'px',height:img.height}">
<!-- 图片卡片 -->
<el-card shadow="hover" :body-style="{'padding':'0px','border-radius':'10px'}" @click.native="showRealImage(img)">
<!-- 图片懒加载 -->
<el-image :src="img.src" class='image' :key='img.id' lazy>
<!-- 加载前占位 -->
<div slot="placeholder" class="image-slot loading">
<div :style="{height:img.height+'px',width:imageWidth + 'px',backgroundColor:img.colour}">加载中……</div>
</div>
<!-- 加载失败占位 -->
<div slot="error" class="image-slot error">
<div :style="{height:img.height+'px',width:imageWidth + 'px',backgroundColor:img.colour}">加载失败!</div>
</div>
</el-image>
</el-card>
</div>
因为要做成瀑布流展示图片,发现一个非常坑的地方,如果v-waterfall-item类一开始在css文件里定义position为absolute,那么el-image根本不会生成<img ...元素,检查了好久没搞明白为什么出现这样的问题。
最后还是等dom生成完,用jquery把所有的该类对象改css {position:absolute;}搞定的。
有大神清楚其中问题,帮忙指教一下,有什么更好的方法。