• 小程序实现一个全局的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>

  • 相关阅读:
    vue3 + vue-cli3/4配置svg文件的全局使用
    利用scrapy库采集数据信息
    学会倾听,创建良性的交流通道
    数据库知识
    SpringBoot OSS实战之用户头像上传
    期权开户流程合集——期权开户的操作步骤
    [激光原理与应用-19]:《激光原理与技术》-5- 激光器的增益、损耗、自激振荡条件
    Windows操作系统进阶:防火墙基础和Windows Defender
    低代码开发——进最热的赛道,啃最硬的骨头
    XAPI项目架构:应对第三方签名认证的设计与调整
  • 原文地址:https://blog.csdn.net/weixin_44727080/article/details/126770267