• 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')
    }
  • 相关阅读:
    渐变的圆
    画一组同心圆
    画五角星
    照猫画虎求阶乘
    字符串逆序输出
    格式化输出
    计算矩形面积
    字符串反码A
    快乐数字
    Maratona Brasileira de Popcorn( 二分答案+暴力 )
  • 原文地址:https://www.cnblogs.com/huangmin1992/p/9436878.html
Copyright © 2020-2023  润新知