vant文档:Vant 2 – Mobile UI Components built on Vue
实现效果:
代码实现:
1.navbar、tabbar顶部导航过渡效果、颜色过渡;
<div class="mallHead"> <van-nav-bar :title="titleName" fixed @click-left="onClickLeft" :style="style" safe-area-inset-top> <template #left> <van-icon name="arrow-left" size="22px" color="#024EE0" /> </template> </van-nav-bar> <div class="top"></div> </div>
<div :class="indexTop>220?'menuActive':'dropdown-menu'" > <van-dropdown-menu> <van-dropdown-item v-model="amountValue" :options="amountOption" /> <van-dropdown-item v-model="integralValue" :options="integralOption" /> <van-dropdown-item v-model="goodsValue" :options="goodsOption" /> </van-dropdown-menu> </div>
css样式
.mallHead ::v-deep.van-nav-bar{ background: none; .van-icon-arrow-left{ color:#fff !important; } .van-nav-bar__title{ color:#fff; } } .mallHead ::v-deep.van-nav-bar::after{ border: 0; } .menuActive{ box-shadow: none; background:#fff; width: 100%; position: fixed; top: 92px; left: 0; z-index: 1; }
2.定义data
data(){ return { style:null, indexTop:0,// 滚动条高度 amountValue:0, amountOption:[ { text: '兑换量从高到底', value: 0 }, { text: '积分从低到高', value: 1 }, { text: '积分从高到低', value: 2 }, ], ....... } }
3.methods方法定义
mounted(){ window.addEventListener('scroll', this.handleScroll,true); }, destroyed() { window.removeEventListener('scroll', this.handleScroll); },
定义handleScroll方法
Math.abs(Math.round(this.indexTop)) / 100; 自行定义
handleScroll(){ this.indexTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop; // 计算出移动位置 const opacity = Math.abs(Math.round(this.indexTop)) / 100; // 根据位置移动动态设置背景透明度 this.style = { background: `rgba(253,85,39,${opacity})`}; }
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)