微信小程序——滚动渐变的顶部导航栏

这篇文章主要介绍了在小程序端怎么实现导航栏滚动渐变效果,本文通过实例代码给大家介绍,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

效果图

星巴克用星说小程序首页为例,首页打开时导航栏隐藏,当鼠标往下滚动时导航栏逐渐显示,当鼠标往上滚动时导航栏逐渐消失。

在这里插入图片描述

代码区(以uniapp为例)

1.导航栏HTML

<template>
	<view>
		<view class="title" :style="{opacity:titleOpacity}">星巴克用星说</view>
		<view class="outer">

		</view>
	</view>
</template>

2.导航栏CSS

.outer {
		width: 100%;
		height: 1867rpx;
		background: url('../static/bg.png') no-repeat;
		background-size: 100% 100%;
	}

	.title {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 120rpx;
		padding-top: 50rpx;
		background-color: #fff;
		color: #000;
		display: flex;
		align-items: center;
		justify-content: center;
		font-weight: bold;
		font-size: 34rpx;
	}

3.滚动js实现

<script>
	export default{
		data(){
			return{
				titleOpacity:0
			}
		},
		// 页面滚动监听
		onPageScroll(e){		
			// num决定滚动时导航栏显示的快慢
			let num = 160;
			let r = e.scrollTop  / num;
			this.titleOpacity = r>=1?1:r;
		},
	}
</script>
总结

刚开始在小程序端看到这个效果,最开始的思路是通过滚动时v-if去控制它的显示隐藏,但仔细一看肯定人家肯定不是这样实现的,我看到很多人想到滚动时给它添加动画属性(animation)去实现它我试了下看起来效果还是差点意思,所以想还是控制盒子的opacity值效果最好。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值