戦闘にWebフロントエンドを取得:スケルトンCSS画面プログラムの実装

利点

  • シンプルで、何のエンジニアリング、何の人形遣いはスケルトンDOM、また二次開発と保守の必要性を生成しません
  • あなたはどのようにすればいいかのような高度なカスタマイズ、
  • 肥大化していない、ちょうどあなたが欲しい与えるために

短所

  • 自動化の程度が低い、手動バックボーンクラスDOMを追加する必要があります
  • 相乗エンジニアリングは、結合するように操作ません、でき厳しいです

思考

骨格は、骨格とページスタイルによって動的スイッチング動作を達成するために、擬似スタイル要素によって達成しました

実現

CSS部分(SCSSが書き込ま)

after擬似要素スケルトンフォームを生成し、によってabsolute実際の要素の上にカバー

专门建立的学习Q-q-u-n: 784-783-012 ,分享学习的方法和需要注意的小细节,不停更新最新的教程和学习技巧
(从零基础开始到前端项目实战教程,学习工具,全栈开发学习路线以及规划)
  .skt-loading {
    pointer-events: none; /* 加载中阻止事件 */
    .skeleton {
      position: relative;
      overflow: hidden;
      border: none !important;
      border-radius: 5px;
      background-color: transparent !important;
      background-image: none !important;
      &::after {
        content: '';
        position: absolute;
        left: 0;
        top: 0;
        z-index: 9;
        width: 100%;
        height: 100%;
        background-color: #EBF1F8;
        display: block;
      }

      /* 下面这部分都是自定义的,看需求修改 */
      &:not(.not-round)::after {
        border-radius: 4px;
      }
      &:not(.not-before)::before {
        position: absolute;
        top: 0;
        width: 30%;
        height: 100%;
        content: "";
        background: linear-gradient(to right,rgba(255,255,255,0) 0,
            rgba(255,255,255,.3) 50%,rgba(255,255,255,0) 100%);
        transform: skewX(-45deg);
        z-index: 99;
        animation: skeleton-ani 1s ease infinite;
        display: block;
      }
      &.badge {
        &::after {
          background-color: #F8FAFC;
        }
      }
    }
  }

  @keyframes skeleton-ani { /* 骨架屏动画 */
    from {
      left: -100%;
    }
    to {
      left: 150%;
    }
  }

htmlの一部

あなたは唯一の合理的なサイズの骨格と考える要素に追加する必要がskeletonクラス缶

JSの一部

コントロールskt-loadingクラスの切り替えを

注意

  • あなたがskletonを追加する必要がある場合、層のエンベロープ要素を追加する必要がある、のような擬似要素のコンテナ要素は非inputimgに挿入することはできません後
  • データドリブンページのvuereactようにあなたは、DOMを生成するために、モックデータを持っている必要があります

おすすめ

転載: blog.51cto.com/14592820/2463910
おすすめ