zoukankan      html  css  js  c++  java
  • js——图片懒加载

    <img class="js-lazy-image centered" src="./img/dog-running.svg" width="400" height="400" data-src="./img/dog-running.jpg">
    <img class="js-lazy-image centered" src="./img/dog-running.svg" width="400" height="400" data-src="./img/dog-running.jpg">
    <img class="js-lazy-image centered" src="./img/dog-running.svg" width="400" height="400" data-src="./img/dog-running.jpg">
        .fade-in {
          animation-name: fadeIn;
          animation-duration: 1.3s;
          animation-timing-function: cubic-bezier(0, 0, 0.4, 1);
          animation-fill-mode: forwards;
        }
    
        @keyframes fadeIn {
          from {
            opacity: 0;
          }
    
          to {
            opacity: 1;
          }
        }
    
    .centered {
       display:block;
       margin:0 auto;
    }
    'use strict';
    var images = document.querySelectorAll('.js-lazy-image'), config = {
        rootMargin: '50px 0px',
        threshold: 0.01
    }, imageCount = images.length, observer;
    if (!('IntersectionObserver'in window))
        loadImagesImmediately(images);
    else {
        observer = new IntersectionObserver(onIntersection,config);
        for (var image, i = 0; i < images.length; i++)
            (image = images[i],
            !image.classList.contains('js-lazy-image--handled')) && observer.observe(image)
    }
    function fetchImage(a) {
        return new Promise(function(b, c) {
            var d = new Image;
            d.src = a,
            d.onload = b,
            d.onerror = c
        }
        )
    }
    function preloadImage(a) {
        var b = a.dataset.src;
        return b ? fetchImage(b).then(function() {
            applyImage(a, b)
        }) : void 0
    }
    function loadImagesImmediately(a) {
        for (var d, b = Array.from(a), c = 0; c < a.length; c++)
            d = a[c],
            preloadImage(d)
    }
    function disconnect() {
        observer && observer.disconnect()
    }
    function onIntersection(a) {
        0 === imageCount && observer.disconnect();
        for (var c, b = 0; b < a.length; b++)
            c = a[b],
            0 < c.intersectionRatio && (imageCount--,
            observer.unobserve(c.target),
            preloadImage(c.target))
    }
    function applyImage(a, b) {
        a.classList.add('js-lazy-image--handled'),
        a.src = b,
        a.classList.add('fade-in')
    }
  • 相关阅读:
    最短路
    P2863 [USACO06JAN]牛的舞会The Cow Prom
    牛客小白月赛12
    牛客练习赛41
    求余
    dreamstart 的催促
    deepin安装tesseract出错,tesserocr.cpp:653:10: fatal error: leptonica/allheaders.h: 没有那个文件或目录
    自动抽屉 + 点赞 + 取消赞
    爬取汽车之家
    css垂直居中和水平居中
  • 原文地址:https://www.cnblogs.com/huangmin1992/p/9436878.html
Copyright © 2011-2022 走看看