zoukankan      html  css  js  c++  java
  • 页面loading:计算图片预加载方法

    HTML部分:

    <div id="loading" class="loading position">
      <div class="spinner">
        <div class="bounce1"></div>
        <div class="bounce2"></div>
        <div class="bounce3"></div>
      </div>
      <p>loading...</p>
    </div>

    <!-- img要带有data-src属性-->

    <img class="" id="" data-src="images/xxx.png" alt="">

    css部分:

    .loading{text-align: center; left:50%; font-size: 30px; z-index: 1;}

    #loading{ 100%; top:45%; margin-left: -50%;}
    .loading p{color: #ff9244; font-weight: bold; font-family: Arial; font-size: 24px; }
    .spinner { margin: 0 auto; 150px; text-align: center; }
    .spinner > div { 30px; height: 30px; background-color:#ff9244; border-radius: 100%; display: inline-block; -webkit-animation: bouncedelay 1.4s infinite ease-in-out; animation: bouncedelay 1.4s infinite ease-in-out; -webkit-animation-fill-mode: both; animation-fill-mode: both; }
    .spinner .bounce1 { -webkit-animation-delay: -0.32s; animation-delay: -0.32s; }
    .spinner .bounce2 { -webkit-animation-delay: -0.16s; animation-delay: -0.16s;}
    @-webkit-keyframes bouncedelay {
      0%, 80%, 100% { -webkit-transform: scale(0.0) }
      40% { -webkit-transform: scale(1.0) }
    }
    @keyframes bouncedelay {
      0%, 80%, 100% { transform: scale(0.0); -webkit-transform: scale(0.0);} 
      40% { transform: scale(1.0); -webkit-transform: scale(1.0);}
    }

    JS部分:

    var version='1.0'

    var resourceDir="images/";//存放图片的相对路径
    var loadingImages=[];//存放图片地址的数组
    var TotalImagesJpg=1;//存放jpg图片的总数
    var TotalImagesPng=26;//存放png图片的总数
    if(TotalImagesJpg != 0){
      for(var i=1;i<=TotalImagesJpg;i++){
        loadingImages.push("a"+(i<10?"0"+i:i)+".jpg");
      }
    };
    if(TotalImagesPng != 0){
      for(var i=1;i<=TotalImagesPng;i++){
        loadingImages.push("a"+(i<10?"0"+i:i)+".png");
      }
    }

    loadResources(loadingImages,function (n, i, img) {
      //music();
      $("#loading p").html("loading&nbsp;" + Math.round(i * 100 / n) + "%");
      if (n != i) return;
      $("img").each(function(){
        $(this).attr("src",$(this).data("src")+"?ver="+version);
      });
      //$("#loading").remove();
      //$("#page1").show();
      //init();
    });
    /*
    函数名称:loadResources()
    功 能:图片预加载
    参 数:urls:包含所有图片的数组、
    progress:n=图片总数、i=当前加载第几张、img代表图片地址 
    返回结果:无
    */
    function loadResources(urls, progress) {
      var loadedCount = 0;
      var loaded = function () {
        ++loadedCount;
        if (progress) progress(urls.length, loadedCount, this);
      };
      for (var i = 0; i < urls.length; ++i) {
        if (!urls[i]) {
        loaded();
        return;
      }
      var img = new Image();
      img.onload = loaded;
      img.onabort = loaded;
      img.onerror = loaded;
      img.src = resourceDir + urls[i] + "?ver=" + version;
      }
    };

  • 相关阅读:
    LeetCode OJ 112. Path Sum
    LeetCode OJ 226. Invert Binary Tree
    LeetCode OJ 100. Same Tree
    LeetCode OJ 104. Maximum Depth of Binary Tree
    LeetCode OJ 111. Minimum Depth of Binary Tree
    LeetCode OJ 110. Balanced Binary Tree
    apache-jmeter-3.1的简单压力测试使用方法(下载和安装)
    JMeter入门教程
    CentOS6(CentOS7)设置静态IP 并且 能够上网
    分享好文:分享我在阿里8年,是如何一步一步走向架构师的
  • 原文地址:https://www.cnblogs.com/Cloudloong/p/9562656.html
Copyright © 2011-2022 走看看