导航栏的渐隐渐显(小程序)
滚到一定高度显示导航栏
onPageScroll在父组件中才会生效 子组件不生效
父组件
<template> <view> <view class="scroll-flex" v-show="!showsc" :style="{ opacity: stylecity }"> <Nav></Nav> </view> <Banner></Banner> </view> </template> <script> import Nav from ./components/nav.vue; import Banner from ./components/banner.vue; export default { components: { Nav, Banner, }, data() { return { showsc: true, stylecity:0, }; }, methods: { handScroll(top) { if (top > 90) { // console.log(距离顶部90px) let opacity = top / 170; opacity = opacity > 1 ? 1 : opacity; // console.log(opacity) this.stylecity = opacity; this.showsc = false; } else { this.showsc = true; } } }, //监听页面滚动 onPageScroll(e) { console.log(e); let top = e.scrollTop; this.handScroll(top); } }; </script> <style> page { background: #f8f8f8; } .scroll-flex { position: fixed; top: 0; left: 0; right: 0; background: #ffd00c; z-index: 2; } </style>
子组件
<template> <view style="height: 2000px;">banner</view> </template> <script> </script> <style> </style>
子组件(导航栏)
<template> <view> <view class="navs"> <block v-for="(item, index) in navList" :key="index"> <text :class="{ activetext: index == num }" @click="navbtn(index)">{ { item.name }}</text> </block> </view> </view> </template> <script> export default { data() { return { num:0, navList: [ { name: 宝贝 }, { name: 详情 }, { name: 评价 } ] }; }, methods:{ navbtn(index){ this.num = index } } }; </script> <style scoped> .navs text { display: block; font-size: 30upx; width: 100upx; text-align: center; color: #464230; } .navs { display: flex; justify-content: center; height: 35px; line-height: 35px; padding: 5upx 0; } .activetext { border-bottom: 6upx solid #3d3b32; } </style>
上一篇:
uniapp开发微信小程序-2.页面制作
下一篇:
JAVA开发(自研项目的开发与推广)