微信小程序----导航栏透明渐变二(MUI导航栏透明渐变)

时间:2024-03-12 16:09:20

导航栏透明渐变效果

导航栏透明渐变

实现原理

  1. 给page-group设置的背景颜色采用rgba;
  2. 通过改变rgba其中a的值来实现透明渐变。

WXML

<view style="height:100%;position:fixed;width:100%;">
  <scroll-view scroll-y="false"  bindscroll="scroll" style="height:100%;">
  <!-- 改变位置,去掉多余的view,直接改变背景色的透明度实现透明渐变 -->
    <view class="page-group" style="background-color: rgba(138, 43, 226,{{scrollTop / 400 > 0.9 ? 0.9 : scrollTop / 400}});">
      <view class="page-nav-list"><text>首页</text></view>
      <view class="page-nav-list"><text>活动</text></view>
      <view class="page-nav-list"><text>菜单</text></view>
      <view class="page-nav-list"><text>我的</text></view>
    </view>
    <view class="page-banner">
      banner
    </view>
    <view class="goods-list">
      goods-list1
    </view>
    <view class="goods-list list2">
      goods-list2
    </view>
    <view class="goods-list list3">
      goods-list3
    </view>
    <view class="goods-list list4">
      goods-list4
    </view>
  </scroll-view>
</view>

WXSS

.page-banner{height: 500rpx;background-color: greenyellow;padding: 20rpx;color:#fff;padding-top: 100rpx;}
/*去掉多余的class,直接设置背景色为rgba格式*/
.page-group{
  display: table;
  width: 100%;
  table-layout: fixed;
  background-color: rgba(138, 43, 226,0);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10;
}
.page-nav-list{
  padding:30rpx 0 ;
  display: table-cell;
  text-align: center;
  width: 100%;
  color: #fff;
}
.goods-list{
  height: 500rpx;
  background-color: green;
  padding: 20rpx;
  color:#fff;
}
.list2{background-color: blue;}
.list3{background-color: yellow;}
.list4{background-color: red;}

JS

Page({
  data: {
    scrollTop: null
  },
  //滚动条监听
  scroll: function (e) {
    this.setData({ scrollTop: e.detail.scrollTop })
  },
})

总结:
1.优点是去掉了多余的view空和class代码,减少了代码,实现了相同的效果。
2.缺点就是在微信开发者工具中,保存刷新不能获取当前位置scrollTop,只有滚动才能获取scrollTop。

其他

我的博客,欢迎交流!

我的CSDN博客,欢迎交流!

微信小程序专栏

前端笔记专栏

微信小程序实现部分高德地图功能的DEMO下载

微信小程序实现MUI的部分效果的DEMO下载

微信小程序实现MUI的GIT项目地址

微信小程序实例列表

前端笔记列表

游戏列表