导航栏透明渐变效果
实现原理
1. 给page-group设置的背景颜色采用rgba;
2. 通过改变rgba其中a的值来实现透明渐变。
WXML
<view> <scroll-view scroll-y="false" bindscroll="scroll"> <!-- 改变位置,去掉多余的view,直接改变背景色的透明度实现透明渐变 --> <view> <view><text>首页</text></view> <view><text>活动</text></view> <view><text>菜单</text></view> <view><text>我的</text></view> </view> <view> banner </view> <view> goods-list1 </view> <view> goods-list2 </view> <view> goods-list3 </view> <view> 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。