• 小程序实现一个全局的loadding效果


    前言:

            小程序中实现一个全局的loadding效果,也可以根据具体的组件大小来调整他的高度。

    实现效果:

    1、整个页面

    2、局部组件大小

     实现步骤:

    1、 app.js中全局定义字段

    1. App({
    2. globalData: {
    3. loadingImg:'https://xxxxxx/loading/loading.gif',//你的loadding图片地址
    4. }
    5. })

    2、components中建立loadding的文件信息,load为文件夹

     load/index.wxml

    1. class="load-bg" style="{{'background-color:'+backgroundColor+';top:'+loaddingTop}}">
    2. <view class="load">
    3. <view class="load-box">
    4. <image class="load-box-img" src="{{loadingImg}}">image>
    5. view>
    6. view>

      load/index.wxss

    1. .load-bg{
    2. position: fixed;
    3. left:0;
    4. top:0;
    5. right: 0;
    6. bottom: 0;
    7. background-color: #fff;
    8. z-index: 9999;
    9. }
    10. .load{
    11. position: fixed;
    12. top: 50%;
    13. margin-top: -40rpx;
    14. width: 100%;
    15. }
    16. .load-box{
    17. height: 80rpx;
    18. /* margin: 0 112rpx; */
    19. text-align: center;
    20. }
    21. .load-box .load-box-img{
    22. width: 80rpx;
    23. height: 80rpx;
    24. }

     load/index.js

    1. // components/load/index.js
    2. const app = getApp();
    3. Component({
    4. /**
    5. * 组件的属性列表
    6. */
    7. properties: {
    8. loadinTime:{
    9. type:Number,
    10. value:0
    11. },
    12. //自定义loadding的top,这里是控制整个覆盖还是局部覆盖的核心
    13. loaddingTop:{
    14. type:Number | String,
    15. value:0
    16. }
    17. },
    18. /**
    19. * 组件的初始数据
    20. */
    21. data: {
    22. loadingImg:'',
    23. backgroundColor:'',
    24. },
    25. lifetimes: {
    26. created() {},
    27. attached() {},
    28. ready() {
    29. this.setData({
    30. loadingImg:app.globalData.loadingImg,
    31. backgroundColor:app.globalData.loadingBackgroundColor,
    32. })
    33. console.log('loading')
    34. },
    35. },
    36. /**
    37. * 组件的方法列表
    38. */
    39. methods: {}
    40. })

     load/index.json

    1. {
    2. "component": true,
    3. "usingComponents": {}
    4. }

    3、页面上具体使用:带自定义切换的页面

    首页:   index文件夹

     index/index.wxml

    wx:if="{{loadingFlag}}" />

    index/index.js

    1. data:{
    2. loadingFlag:true,
    3. }
    4. onLoad(options) {
    5. //关闭自定义tab切换
    6. this.getTabBar().setData({
    7. tabBarShow:false,
    8. })
    9. }
    10. //打开loadding
    11. this.setData({
    12. loadingFlag:true
    13. })
    14. //关闭loadding 并 打开自定义tab切换
    15. this.setData({
    16. loadingFlag:false
    17. })
    18. this.getTabBar().setData({
    19. tabBarShow:true,
    20. })

    index/index.json

    1. {
    2. "disableScroll": true,
    3. "usingComponents": {
    4. "loading":"../../components/load/index"
    5. }
    6. }

    4、页面上具体使用:普通页面全局

    cart 文件夹

    cart/index.wxml

    wx:if="{{loadingFlag}}" />

    cart/index.js

    1. //打开loadding
    2. this.setData({
    3. loadingFlag:true
    4. })
    5. //关闭loadding
    6. this.setData({
    7. loadingFlag:false
    8. })

    cart/index.json

    1. "usingComponents": {
    2. "loading":"../../components/load/index"
    3. }

    5、页面上具体使用:局部页面的loadding效果

    wxml

    wx:if="{{loadingFlag}}" loaddingTop="{{loaddingTop}}"/>

    js

    1. data: {
    2. loadingFlag:true,
    3. loaddingTop:'88rpx'
    4. },

    6、弹框上具体使用

    wxml

    1. show="{{ show }}"
    2. >
    3. <view slot="content" class="title-contant">
    4. <loading wx:if="{{loadingFlag}}"/>
    5. view>

  • 相关阅读:
    温故而知新八(C++)
    服装商城网站风险及优势
    正式练习的第一个Python功能:加法计算
    『C语言』递归思想
    Redis 持久化机制
    centos系统进行pppoe拨号
    当出现“无法成功完成操作,因为文件包含病毒或潜在的垃圾软件“时的解决办法
    Chapter 19 Tips and Traps: Common Goofs for Novices
    ZingChart JavaScript Chart 2.9.10 Crack
    金山云:基于 JuiceFS 的 Elasticsearch 温冷热数据管理实践
  • 原文地址:https://blog.csdn.net/weixin_44727080/article/details/126770267