js实现图片预加载

实现图片的懒加载,实际上是创建一个图片对象,缓存在浏览器中,用于处理图片大小过大,加载过程不友好,影响用户体验

在图片的加载过程中,用这种loading代替,加载完毕后,通过替换图片的方式实现

html代码如下:

 <div id="page">
        <div class="imgBox">
            <img id="imgObj" class="loadingImg" :src="imgSrc" :class="{'loading': isloading}" />
        </div>
</div>

 css代码如下:

 .imgBox {
            width: 430px;
            height: 430px;
            display: flex;
            justify-content: center;
            align-items: center;
            background-color: #ccc;
        }

        @-webkit-keyframes rotation {
            from {
                -webkit-transform: rotate(0deg);
            }

            to {
                -webkit-transform: rotate(360deg);
            }
        }

        .loadingImg {
            width: 50px;
            height: 50px;
            display: inline-block;
            -webkit-transform: rotate(360deg);
            animation: rotation 3s linear infinite;
            -moz-animation: rotation 3s linear infinite;
            -webkit-animation: rotation 3s linear infinite;
            -o-animation: rotation 3s linear infinite;
        }

        .imgBox .loading {
            width: 100%;
            height: 100%;
            -webkit-transform: rotate(0deg);
            animation: rotation 0s linear infinite;
            -moz-animation: rotation 0s linear infinite;
            -webkit-animation: rotation 0s linear infinite;
            -o-animation: rotation 0s linear infinite;
        }

js代码如下:

 var app = new Vue({
            el: '#page',
            data: function () {
                return {
                    isloading: false,
                    imgSrc: './images/load.png'
                }
            },
            mounted() {
                let _this = this;
                // 这里用定时器表示接口请求
                setTimeout(() => {
                    let temSrc =
                        'https://dss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=151472226,3497652000&fm=26&gp=0.jpg';
                    var newImg = new Image();
                    newImg.src = temSrc; // 需要写在new Image()后面,否则ie会报错
                    newImg.onload = function () { // 图片加载成功后把地址给原来的img
                        _this.isloading = true;
                        _this.imgSrc = newImg.src;
                    };
                }, 1000)

            },
            methods: {

            }
        })

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值