码迷,mamicode.com
首页 > 其他好文 > 详细

vue-loading图

时间:2019-10-20 13:19:05      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:span   直接   改变   price   animation   tran   series   pos   nim   

父组件给子组件src地址;

 columns(){
     return [
         {title: 图片, key: img, render(h, {row}){
             return h(LoadingImg, {
                 props: {//把这些传给子组件
                     w: 80,
                     h: 45,
                     src: http://192.168.2.233/carimages_small/ + row.id + /view/ + row.img
                 }
             });
         }},
         {title: 编号, key: id},
         {title: 品牌, key: brand},
         {title: 车系, key: series},
         {title: 颜色, key: color},
         {title: 售价, key: price},
         {title: 环保, key: exhaust},
         {title: 发动机, key: engine},
         {title: 燃料, key: fuel}
     ];
 }

子组件

props: [w, h, src],
    methods: {
        change(){
            // 显示菊花
            this.isShowPin = true;
            // 创建一个虚拟图片
            var img = new Image();
            // 设置src
            img.src = this.src;
            // 监听load
            img.onload = () => {
                // 加载完毕之后替了
                this.picurl = this.src;
                // 隐藏菊花
                this.isShowPin = false;
            }
        }
    },
//创建前直接显示
created(){
    this.change();
},
 //改变后重新加载loading
 watch:{
      src(){
         this.change()
      }
}

loading

<template>
    <div style="position:relative;" :style="{‘width‘: w + ‘px‘, ‘height‘: h + ‘px‘}">
        <img :style="{‘width‘: w + ‘px‘, ‘height‘: h + ‘px‘}" :src="picurl" >
        <Spin fix v-show="isShowPin">
            <Icon type="ios-loading" size=18 class="demo-spin-icon-load"></Icon>
        </Spin>
    </div>
</template>

<script>
    export default {
        props: [w, h, src],
        data(){
            return {
                picurl: ‘‘,
                isShowPin: false
            };
        },
        methods: {
            change(){
                // 显示菊花
                this.isShowPin = true;
                // 创建一个虚拟图片
                var img = new Image();
                // 设置src
                img.src = this.src;
                // 监听load
                img.onload = () => {
                    // 加载完毕之后替了
                    this.picurl = this.src;
                    // 隐藏菊花
                    this.isShowPin = false;
                }
            }
        },
        created(){
            this.change();
        },
        watch:{
            src(){
                this.change()
            }
        }
    }
</script>

<style>
    .demo-spin-icon-load{
        animation: ani-demo-spin 1s linear infinite;
    }
    @keyframes ani-demo-spin {
        from { transform: rotate(0deg);}
        50%  { transform: rotate(180deg);}
        to   { transform: rotate(360deg);}
    }
    .demo-spin-col{
        height: 100px;
        position: relative;
        border: 1px solid #eee;
    }
</style>

喜欢的小伙伴可以关注我的微信公众号“前端伪大叔”

技术图片

 

vue-loading图

标签:span   直接   改变   price   animation   tran   series   pos   nim   

原文地址:https://www.cnblogs.com/qdwds/p/11706988.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!