• vue项目加载前空白的动画过渡效果


    参考:https://github.com/mgbq/nx-admin

    复制以下html内容到项目的index.html中即可:

      <style>
        html,
        body,
        #app {
          height: 100%;
          margin: 0px;
          padding: 0px;
        }
        .chromeframe {
          margin: 0.2em 0;
          background: #ccc;
          color: #000;
          padding: 0.2em 0;
        }
        #loader-wrapper {
          position: fixed;
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
          z-index: 999999;
        }
        #loader {
          display: block;
          position: relative;
          left: 50%;
          top: 50%;
          width: 150px;
          height: 150px;
          margin: -75px 0 0 -75px;
          border-radius: 50%;
          border: 3px solid transparent;
          /* COLOR 1 */
          border-top-color: #FFF;
          -webkit-animation: spin 2s linear infinite;
          /* Chrome, Opera 15+, Safari 5+ */
          -ms-animation: spin 2s linear infinite;
          /* Chrome, Opera 15+, Safari 5+ */
          -moz-animation: spin 2s linear infinite;
          /* Chrome, Opera 15+, Safari 5+ */
          -o-animation: spin 2s linear infinite;
          /* Chrome, Opera 15+, Safari 5+ */
          animation: spin 2s linear infinite;
          /* Chrome, Firefox 16+, IE 10+, Opera */
          z-index: 1001;
        }
        #loader:before {
          content: "";
          position: absolute;
          top: 5px;
          left: 5px;
          right: 5px;
          bottom: 5px;
          border-radius: 50%;
          border: 3px solid transparent;
          /* COLOR 2 */
          border-top-color: #FFF;
          -webkit-animation: spin 3s linear infinite;
          /* Chrome, Opera 15+, Safari 5+ */
          -moz-animation: spin 3s linear infinite;
          /* Chrome, Opera 15+, Safari 5+ */
          -o-animation: spin 3s linear infinite;
          /* Chrome, Opera 15+, Safari 5+ */
          -ms-animation: spin 3s linear infinite;
          /* Chrome, Opera 15+, Safari 5+ */
          animation: spin 3s linear infinite;
          /* Chrome, Firefox 16+, IE 10+, Opera */
        }
        #loader:after {
          content: "";
          position: absolute;
          top: 15px;
          left: 15px;
          right: 15px;
          bottom: 15px;
          border-radius: 50%;
          border: 3px solid transparent;
          border-top-color: #FFF;
          /* COLOR 3 */
          -moz-animation: spin 1.5s linear infinite;
          /* Chrome, Opera 15+, Safari 5+ */
          -o-animation: spin 1.5s linear infinite;
          /* Chrome, Opera 15+, Safari 5+ */
          -ms-animation: spin 1.5s linear infinite;
          /* Chrome, Opera 15+, Safari 5+ */
          -webkit-animation: spin 1.5s linear infinite;
          /* Chrome, Opera 15+, Safari 5+ */
          animation: spin 1.5s linear infinite;
          /* Chrome, Firefox 16+, IE 10+, Opera */
        }
        @-webkit-keyframes spin {
          0% {
            -webkit-transform: rotate(0deg);
            /* Chrome, Opera 15+, Safari 3.1+ */
            -ms-transform: rotate(0deg);
            /* IE 9 */
            transform: rotate(0deg);
            /* Firefox 16+, IE 10+, Opera */
          }
          100% {
            -webkit-transform: rotate(360deg);
            /* Chrome, Opera 15+, Safari 3.1+ */
            -ms-transform: rotate(360deg);
            /* IE 9 */
            transform: rotate(360deg);
            /* Firefox 16+, IE 10+, Opera */
          }
        }
        @keyframes spin {
          0% {
            -webkit-transform: rotate(0deg);
            /* Chrome, Opera 15+, Safari 3.1+ */
            -ms-transform: rotate(0deg);
            /* IE 9 */
            transform: rotate(0deg);
            /* Firefox 16+, IE 10+, Opera */
          }
          100% {
            -webkit-transform: rotate(360deg);
            /* Chrome, Opera 15+, Safari 3.1+ */
            -ms-transform: rotate(360deg);
            /* IE 9 */
            transform: rotate(360deg);
            /* Firefox 16+, IE 10+, Opera */
          }
        }
        #loader-wrapper .loader-section {
          position: fixed;
          top: 0;
          width: 51%;
          height: 100%;
          background: #7171C6;
          /* Old browsers */
          z-index: 1000;
          -webkit-transform: translateX(0);
          /* Chrome, Opera 15+, Safari 3.1+ */
          -ms-transform: translateX(0);
          /* IE 9 */
          transform: translateX(0);
          /* Firefox 16+, IE 10+, Opera */
        }
        #loader-wrapper .loader-section.section-left {
          left: 0;
        }
        #loader-wrapper .loader-section.section-right {
          right: 0;
        }
        /* Loaded */
        .loaded #loader-wrapper .loader-section.section-left {
          -webkit-transform: translateX(-100%);
          /* Chrome, Opera 15+, Safari 3.1+ */
          -ms-transform: translateX(-100%);
          /* IE 9 */
          transform: translateX(-100%);
          /* Firefox 16+, IE 10+, Opera */
          -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
          transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
        }
        .loaded #loader-wrapper .loader-section.section-right {
          -webkit-transform: translateX(100%);
          /* Chrome, Opera 15+, Safari 3.1+ */
          -ms-transform: translateX(100%);
          /* IE 9 */
          transform: translateX(100%);
          /* Firefox 16+, IE 10+, Opera */
          -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
          transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
        }
        .loaded #loader {
          opacity: 0;
          -webkit-transition: all 0.3s ease-out;
          transition: all 0.3s ease-out;
        }
        .loaded #loader-wrapper {
          visibility: hidden;
          -webkit-transform: translateY(-100%);
          /* Chrome, Opera 15+, Safari 3.1+ */
          -ms-transform: translateY(-100%);
          /* IE 9 */
          transform: translateY(-100%);
          /* Firefox 16+, IE 10+, Opera */
          -webkit-transition: all 0.3s 1s ease-out;
          transition: all 0.3s 1s ease-out;
        }
        /* JavaScript Turned Off */
        .no-js #loader-wrapper {
          display: none;
        }
        .no-js h1 {
          color: #222222;
        }
        #loader-wrapper .load_title {
          font-family: 'Open Sans';
          color: #FFF;
          font-size: 19px;
          width: 100%;
          text-align: center;
          z-index: 9999999999999;
          position: absolute;
          top: 60%;
          opacity: 1;
          line-height: 30px;
        }
        #loader-wrapper .load_title span {
          font-weight: normal;
          font-style: italic;
          font-size: 13px;
          color: #FFF;
          opacity: 0.5;
        }
      </style>
      <div id="app">
        <div id="loader-wrapper">
          <div id="loader"></div>
          <div class="loader-section section-left"></div>
          <div class="loader-section section-right"></div>
          <div class="load_title">正在加载 nx-admin,请耐心等待
            <br>
            <span>V1.3</span>
          </div>
        </div>
      </div>
  • 相关阅读:
    BZOJ1217: [HNOI2003]消防局的设立
    BZOJ3925: [Zjoi2015]地震后的幻想乡
    BZOJ2328: [HNOI2011]赛车游戏
    BZOJ1011: [HNOI2008]遥远的行星
    BZOJ2007: [Noi2010]海拔
    BZOJ1833: [ZJOI2010]count 数字计数
    BZOJ1026: [SCOI2009]windy数
    BZOJ1196: [HNOI2006]公路修建问题
    BZOJ1076: [SCOI2008]奖励关
    BZOJ2752: [HAOI2012]高速公路(road)
  • 原文地址:https://www.cnblogs.com/flypig666/p/12310814.html
Copyright © 2020-2023  润新知