• 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')
    }
  • 相关阅读:
    POJ 3278 Catch That Cow (附有Runtime Error和Wrong Answer的常见原因)
    POJ 2251 Dungeon Master (三维BFS)
    HDU 1372 Knight moves
    [Ubuntu] <uptime>命令
    【C】哈夫曼编码
    【C++】开辟数组未初始化问题
    免费下载IEEE论文
    随机换装
    BFS解迷宫问题(Go实现)
    DFS解迷宫问题(Go实现)
  • 原文地址:https://www.cnblogs.com/huangmin1992/p/9436878.html
Copyright © 2020-2023  润新知