最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue之項目中如何封裝loading加載效果

 更新時間:2022年12月07日 10:10:14   作者:牛先森家的牛奶  
這篇文章主要介紹了vue之項目中如何封裝loading加載效果,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

vue封裝loading加載效果

使用兩個文件,vue文件是loading加載效果頁面,JS文件用于main.js中use,供全局使用

Loading.vue

<template>
  <div v-if="show" class="loading-container">
    <div class="loading-mask"></div>
    <div class="loading-content">
      <div class="loading-animate"></div>
      <!-- <div class="loading-text">{{ text }}</div> -->
    </div>
  </div>
</template>
<script>
export default {
  name: 'Loading',
  props: {
    show: Boolean,
  },
  data() {
    return {
      text: 'loading...',
    }
  },
}
</script>
<style lang="scss" scoped>
.loading-container {
  position: relative;
  z-index: 9999;
  .loading-mask {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: rgba(0, 0, 0, 0.1);
  }
  .loading-content {
    position: fixed;
    left: 50%;
    top: 45%;
    z-index: 300;
    transform: translate(-50%, -45%);
    text-align: center;
    .loading-animate {
      display: inline-block;
      width: 35px;
      height: 35px;
      margin: 25px 0 10px;
      vertical-align: middle;
      animation: cricleLoading 1s steps(12, end) infinite;
      background: transparent
        url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=')
        no-repeat;
      background-size: 100%;
    }
    .loading-text {
      font-size: 14px;
      font-weight: 600;
      color: #808085;
    }
  }
}
@-webkit-keyframes cricleLoading {
  0% {
    transform: rotate3d(0, 0, 1, 0deg);
  }
  100% {
    transform: rotate3d(0, 0, 1, 360deg);
  }
}
@keyframes cricleLoading {
  0% {
    transform: rotate3d(0, 0, 1, 0deg);
  }
  100% {
    transform: rotate3d(0, 0, 1, 360deg);
  }
}
</style>

loading.js

import LoadingComponent from '@/components/Loading/loading.vue'

const loading = {
  install: function (Vue) {
    // 創(chuàng)建一個Vue的“子類”組件
    const LoadingConstructor = Vue.extend(LoadingComponent)

    // 創(chuàng)建一個該子類的實例,并掛載到一個元素上
    const instance = new LoadingConstructor()

    // 將這個實例掛載到動態(tài)創(chuàng)建的元素上,并將元素添加到全局結構中
    instance.$mount(document.createElement('div'))
    document.body.appendChild(instance.$el)

    // 在Vue的原型鏈上注冊方法,控制組件
    Vue.prototype.$loading = {
      show: () => {
        instance.show = true
      },
      hide: () => {
        instance.show = false
      },
    }
    // 用于window中可以直接使用
    window.$loading = Vue.prototype.$loading
  },
  
  // show: function () {
  //   console.log('show')
  // }
}

export default loading

main.js中導入并使用

 import Loading from '@/utils/loading'
 Vue.use(Loading)

項目中使用Loading加載

效果就不展示了,直接在項目中使用即可

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 使用Vue.js和Element-UI做一個簡單登錄頁面的實例

    使用Vue.js和Element-UI做一個簡單登錄頁面的實例

    下面小編就為大家分享一篇使用Vue.js和Element-UI做一個簡單登錄頁面的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • 使用el-table做成樹形結構并解決數(shù)據(jù)驅動視圖問題

    使用el-table做成樹形結構并解決數(shù)據(jù)驅動視圖問題

    這篇文章主要介紹了使用el-table做成樹形結構并解決數(shù)據(jù)驅動視圖問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 最新評論

    桂林市| 黄平县| 乌拉特前旗| 洮南市| 彭州市| 安岳县| 康定县| 砚山县| 牟定县| 泸水县| 津市市| 沅江市| 枣庄市| 庐江县| 临汾市| 社会| 八宿县| 攀枝花市| 江门市| 武宁县| 平定县| 平安县| 忻州市| 福贡县| 萍乡市| 米泉市| 靖州| 综艺| 开阳县| 东乌珠穆沁旗| 九台市| 扶风县| 嵊泗县| 仁布县| 齐齐哈尔市| 图木舒克市| 墨江| 绥阳县| 阳原县| 新邵县| 黄龙县|