自定义导航栏使用uview组件库的navbar组件:
html:
<u-navbar title="标题" class="navBox" :background="navStyleInfo.navBarBg"
:border-bottom="false" :back-icon-color="navStyleInfo.backIconColor"
:title-color="navStyleInfo.titleColor" :is-fixed="true">
</u-navbar>
js:
data() {
return {
currentPageName: '',
navStyleInfo:{
navBarBg: {
backgroundColor: "rgba(255, 255, 255,0)",
},
titleColor:"rgba(255, 255, 255,255)",
backIconColor:"rgba(255, 255, 255,255)"
}
}
},
onPageScroll : function(e) {
this.changeNavBarBg(e.scrollTop);
},
methods: {
changeNavBarBg(scrollY){
let num = 0.00625*scrollY;
if(num > 1){
num = 1
}else{
num = num.toFixed(2)
}
if(scrollY>=80){
this.navStyleInfo={
navBarBg:{
background:'rgba(255, 255, 255,' + num +')',
},
titleColor:'rgba(51, 51, 51,' + num +')',
scanIconColor:'rgba(41,121, 255,' + num +')',
backIconColor:'rgba(51, 51, 51,' + num +')',
}
}
else{
let toTopNum = 0.0125*(80-scrollY);
if(toTopNum<0.2)toTopNum = 0.2;
this.navStyleInfo={
navBarBg:{
background:'rgba(255, 255, 255,' + num +')',
},
titleColor:'rgba(255, 255, 255,' + toTopNum +')',
scanIconColor:'rgba(255,255, 255,' + toTopNum +')',
backIconColor:'rgba(255, 255, 255,' + toTopNum +')',
}
}
}},