【组件库】首页功能模块界面(2)

海轰Pro

共 14322字,需浏览 29分钟

 ·

2021-09-12 13:28

效果展示

静态展示

静态展示效果

动态展示

动态展示效果

Demo代码

js

Page({

  /**
   * 页面的初始数据
   */

  data: {
    //功能模块 
    // functions: [{
    //     name: '时光荏苒',
    //     numbers: '',
    //     iconpath: '/images/code.png',
    //     classifier: "Share",
    //     color: "orange",
    //     path: "../code/code"
    //   },
    //   {
    //     name: '每日一题',
    //     numbers: "",
    //     color: "cyan",
    //     iconpath: '/images/topic.png',
    //     classifier: "Dayup",
    //     path: "../resources/resources",
    //   },
    //   {
    //     name: '小小学堂',
    //     numbers: '',
    //     color: "red",
    //     iconpath: '/images/choucang.png',
    //     classifier: "Study",
    //     path: "../works/works",
    //   },
    //   {
    //     name: '创意小屋',
    //     numbers: '',
    //     color: "purple",
    //     iconpath: '/images/shangcheng.png',
    //     classifier: "Happy",
    //     path: "../functions/functions",
    //   }
    // ],
  },

  /**
   * 生命周期函数--监听页面加载
   */

  onLoadfunction (options{

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */

  onReadyfunction ({

  },

  /**
   * 生命周期函数--监听页面显示
   */

  onShowfunction ({

  },

  /**
   * 生命周期函数--监听页面隐藏
   */

  onHidefunction ({

  },

  /**
   * 生命周期函数--监听页面卸载
   */

  onUnloadfunction ({

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */

  onPullDownRefreshfunction ({

  },

  /**
   * 页面上拉触底事件的处理函数
   */

  onReachBottomfunction ({

  },

  /**
   * 用户点击右上角分享
   */

  onShareAppMessagefunction ({

  }
})

wxml

<view class="box">
  <view class="item_1">
    <!-- <view class="box_right">
   <view class="box_righttop">时光荏苒</view>
   <view class="box_rightlow"><text style="font-size:50rpx;margin:3rpx;color:red;">{{item.numbers}}</text>Study</view>
  </view>
  <view class="box_left">
   <image class="box_img" src="/images/choucang.png"></image>
  </view> -->

  </view>
  <view class="item_2 bg-cyan light">
    <!-- <view class="box_right">
   <view class="box_righttop">时光荏苒</view>
   <view class="box_rightlow"><text style="font-size:50rpx;margin:3rpx;color:red;">{{item.numbers}}</text>Study</view>
  </view>
  <view class="box_left">
   <image class="box_img" src="/images/choucang.png"></image>
  </view> -->

  </view>
  <view class="item_3 bg-red light">
    <!-- <view class="box_right">
   <view class="box_righttop">时光荏苒</view>
   <view class="box_rightlow"><text style="font-size:50rpx;margin:3rpx;color:red;">{{item.numbers}}</text>Study</view>
  </view>
  <view class="box_left">
   <image class="box_img" src="/images/choucang.png"></image>
  </view> -->

  </view>
  <view class="item_4 bg-purple light">
    <!-- <view class="box_right">
   <view class="box_righttop">时光荏苒</view>
   <view class="box_rightlow"><text style="font-size:50rpx;margin:3rpx;color:red;">{{item.numbers}}</text>Study</view>
  </view>
  <view class="box_left">
   <image class="box_img" src="/images/choucang.png"></image>
  </view> -->

  </view>
  <view class="circlex">
    <view class="loading">
      <view class="wave"></view>
    </view>
  </view>
</view>

wxss

.box {
  position: relative;
  width90%;
  height420rpx;
  margin50% auto;/*整个模块的位置 可以自己修改*/
  /* background: #000; */
}

.item_1 {
  position: absolute;
  top0px;
  left0px;
  width48%;
  height200rpx;
  border-radius16rpx;
  background-color#fde6d2;
  overflow: hidden;
  display: flex;
  flex-wrap: wrap;
}

.item_1 .fun_name {
  position: relative;
  width100%;
  height40%;
  /* background-color: red; */
  padding-top10%;
  padding-left20%;
  line-height100%;
  align-items: center;
  font-size30rpx;
}

.item_1 .fun_icon {
  width100%;
  height60%;
}

.box_img {
  width120rpx;
  height120rpx;
}

.item_2 {
  position: absolute;
  top0px;
  right0px;
  width48%;
  height200rpx;
  border-radius16rpx;
  background-color#cce6ff;
  overflow: hidden;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}

.item_3 {
  position: absolute;
  bottom0;
  left0px;
  width48%;
  height200rpx;
  background-color#fadbd9;
  border-radius16rpx;
  overflow: hidden;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}

.item_4 {
  position: absolute;
  /* top: 220rpx; */
  bottom0;
  right0px;
  width48%;
  height200rpx;
  background-color#e1d7f0;
  border-radius16rpx;
  overflow: hidden;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}

.circlex {
  position: absolute;
  top50%;
  left50%;
  transformtranslate(-50%, -50%);
  width200rpx;
  height200rpx;
  border-radius50%;
  background-color#fff;
  overflow: hidden;
}

.circlex .loading {
  position: absolute;
  top50%;
  left50%;
  transformtranslate(-50%, -50%);
  width170rpx;
  height170rpx;
  /* background-color:red; */
  border-radius50%;
  background#b0f4ff;
  border-radius50%;
  overflow: hidden;
  animation: loadingBreath 12s infinite linear;
}

.circlex .loading::before {
  content'Haihong';
  position: absolute;
  top50%;
  left50%;
  transformtranslate(-50%, -50%);
  font-size12px;
  letter-spacing2px;
  color#10a789;
  font-family: sans-serif;
  z-index2;
}

.circlex .loading::after {
  content'';
  position: absolute;
  width100%;
  height25%;
  bottom0;
  background-imagelinear-gradient(to top, #12c8e0, #36e9ff, #5ffbf1);
  animation: loadingRun 5.2s linear infinite;
}

.wave::before {
  content'';
  position: absolute;
  left: -50%;
  width200%;
  height200%;
  z-index1;
  background-color#85f7fb;
  border-radius52% 25% 62% 69%/25% 38%;
  animation: loadingWave 5.2s linear infinite;
}

.wave::after {
  content'';
  position: absolute;
  left: -50%;
  width200%;
  height200%;
  z-index1;
  background-color#d0f4ff;
  border-radius42% 38% 40% 62%/28% 35%;
  animation: loadingWave 5.2s ease-in-out infinite;
}


.middle {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  width90%;
  margin0 auto;
  transformtranslate3d(000);
  opacity1;
}

.middle_box {
  width48%;
  margin-top10rpx;
  margin-bottom10rpx;
  height200rpx;
  background: yellowgreen;
  border-radius16rpx;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}

.box_right {
  width50%;
  display: flex;
  flex-direction: column;
  align-items: center;

  vertical-align: center;
  justify-content: center;
}

.box_righttop {
  padding-top40rpx;
  padding-left30rpx;
  width100%;
  height100rpx;
  font-size30rpx;
}

.box_rightlow {
  width110%;
  height100rpx;
  padding-top00rpx;
  padding-left40rpx;
}

.box_left {
  width50%;
}

.box_img {
  margin-top50rpx;
  margin-left20rpx;
  width120rpx;
  height120rpx;
}

.circle {
  position: absolute;
  top42%;
  left50%;
  transformtranslate(-50%0);
  width200px;
  height200px;
  background#b0f4ff;
  border-radius50%;
  overflow: hidden;
  animation: loadingBreath 2s infinite linear;
}

/* 呼吸灯动画 */

@keyframes loadingBreath {
  0% {
    box-shadow0 0 5px 0 #85f7fb;
  }

  25% {
    box-shadow0 0 20px 0 #85f7fb;
  }

  50% {
    box-shadow0 0 5px 0 #85f7fb;
  }

  75% {
    box-shadow0 0 20px 0 #85f7fb;
  }

  100% {
    box-shadow0 0 5px 0 #85f7fb;
  }
}

/* 底部液体上升动画 */

@keyframes loadingRun {
  0% {
    height25%;
  }

  100% {
    height100%;
  }
}

/* wave动画 */

@keyframes loadingWave {
  0% {
    top: -100%;
    transformrotate(0);
  }

  100% {
    top: -200%;
    transformrotate(360deg);
  }
}

结语

这种样式的模块是挺早以前就有点感觉

前一段时间没事写了写

感觉还是有点不太行

主要是title、icon位置不知道咋放才显得美观一点(注释代码可以去掉 看看效果图 自己感觉不好看就注释了)

「文章仅作为学习笔记,记录从0到1的一个过程」

希望对您有所帮助,如有错误欢迎小伙伴指正~

浏览 49
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报