微信小程序自定义顶部导航,滚动页面顶部导航颜色渐变

2023-11-06

微信小程序自定义顶部导航栏,使背景图置顶;当向上滚动页面时,实现顶部导航颜色渐变


效果图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实现方法

一、在pages.json中设置"navigationStyle": “custom”

代码如下(示例):

"path": "pages/home/home",
"style": {
	"navigationBarTitleText": "XX网络科技",
	"navigationBarBackgroundColor": "#309AEC",
	"navigationBarTextStyle": "white",
	"enablePullDownRefresh": false,
	"backgroundColor": "#ffffff",
	"navigationStyle": "custom"
	}						

二、在页面中配置

提示:由于不同的手机机型顶部导航高度不一样,所有要获取手机的信息

实现方法

总共三步:
1、初始化获取顶部导航信息
2、顶部导航文字上方通过view占位,同时设置顶部导航字体高和行高与胶囊保持一致,实现顶部导航文字在不同机型居中对齐
3、监听滚动事件,不滚动时不加颜色,滚动时给顶部加动态样式

代码如下(示例):

<template>
	<view class="Box">
		<!-- 设置背景图片及自适应高度 -->
		<view class="contain-box" :style="[{backgroundImage:'url('+backgroundImg+')'}, 'height:'+s_topImg+'rpx']" v-for="(item,index) in swipers" :key="index">
			<!-- 滚动动态设置样式 -->
			<view :class="scrollTopShow?'top-item1':'top-item2'":style="'background:rgba(48, 154, 236,' +topOpacity+')'">
				<!-- 胶囊以上占位盒子 -->
				<view :style="'height:'+s_top+'rpx', 'line-height:'+s_top+'rpx'"></view>
				<!-- 动态设置高和行高与胶囊保持一致 -->
				<view class="title-type" :style="['height:'+s_height+'rpx','line-height:'+s_height+'rpx']">
					XX网络科技
				</view>
			</view>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				backgroundImg: '', // 顶部背景图
				s_top: '', //胶囊距离顶部距离
				s_height: '', //胶囊行高	
				s_topImg: '',
				scrollTopShow: true, // 顶部颜色默认隐藏
				topOpacity: 0,
			}
		}created() {
			this.initTopImg();
		},
		// 监听滚动事件
		onPageScroll(e) { //nvue暂不支持滚动监听,可用bindingx代替
				let scrollTop = e.scrollTop;
				this.topOpacity = scrollTop / 300 > 0.9 ? 1 : scrollTop / 300
				if (e.scrollTop != 0) {
					this.scrollTopShow = false;
				} else {
					this.scrollTopShow = true;
				}
			},	
		methods: {
			// 初始化顶部背景图
			initTopImg() {
				let menuButtonInfo = uni.getMenuButtonBoundingClientRect();
				this.s_top = menuButtonInfo.top * 2;
				this.s_topImg = menuButtonInfo.top * 2 + 508;
				this.s_height = menuButtonInfo.height * 2;
			},
			
		}
	}
</script>
<style lang="scss" scoped>
	.contain-box {
		width: 100%;
		background-size: 100% 100%;
		align-items: center;

		.top-item1 {
			.title-type {
				font-size: 36rpx;
				font-weight: 400;
				color: #fff;
				display: flex;
				justify-content: center;
				/* 水平居中 */
			}
		}

		.top-item2 {
			position: fixed;
			top: 0;
			width: 100%;

			.title-type {
				font-size: 36rpx;
				font-weight: 400;
				color: #fff;
				display: flex;
				justify-content: center;
				/* 水平居中 */
			}
		}
	}
</style>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序自定义顶部导航,滚动页面顶部导航颜色渐变 的相关文章

随机推荐

  • BEVDet:High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View 论文笔记

    原文链接 https arxiv org pdf 2112 11790 pdf 1 引言 如下图所示 本文提出的BEVDet包含4个部分 即图像编码器 提取图像特征 视图转换器 将图像视图转化为BEV BEV编码器 进一步提取BEV特征 和
  • MATLAB算法实战应用案例精讲-【人工智能】语义分割(最终篇)(附实战应用案例及代码实现)

    目录 前言 语义分割面临的问题及解决方法 几个高频面试题目 什么是图像中的语义信息
  • MySQL8.0 :grant all privileges on *.* to 报错问题

    报了这个错误 ERROR 1064 42000 You have an error in your SQL syntax check the manual that corresponds to your MySQL server vers
  • 阿里是如何做Code Review的?

    作为卓越工程文化的一部分 Code Review其实一直在进行中 只是各团队根据自身情况张驰有度 松紧可能也不一 这里简单梳理一下CR的方法和团队实践 一 为什么要CR 提前发现缺陷 在CodeReview阶段发现的逻辑错误 业务理解偏差
  • 通俗易懂的java设计模式(7)-原型模式

    1 什么是原型模式 原型模式提供了一种创建对象的模式 它是指用原型实例创建对象的种类 并且通过拷贝这些原型 创建新的对象 用一个很生动形象的例子 孙悟空拔出一根猴毛 变出其他和自己一模一样的小孙悟空 在这里 原型实例就是孙悟空 拔出的猴毛通
  • PCL_BoundaryEstimation边界提取

    pcl BoundaryEstimation用于散乱点云的边界提取 但应该只适用于简单的点云 过于复杂的话效果应该不太好 同时 需要pcl NormalEstimation先计算法线 算起来也挺慢的 https download csdn
  • 军用软件国家标准

    GB T 11457 2006 信息技术 软件工程术语 SJ 20778 2000 软件开发与文档标准 GJB 2786A 2009 军用软件开发通用要求 GJB 438B 2009 军用软件开发文档通用要求 GJB 4072A 2006
  • 公司职员薪水管理系统(List)

    集合初步完成下面的功能需求 做公司职员薪水管理系统 完成以下功能 1 当有新员工时 将加入该管理系统 2 根据员工号 显示该员工信息 3 可以显示所有员工的信息 4 可以修改员工的薪水 5 当员工离职时 从该系统中删除该员工 6 可以将员工
  • Go 性能

    写性能测试在Go语言中是很便捷的 go自带的标准工具链就有完善的支持 下面我们来从Go的内部和系统调用方面来详细剖析一下Benchmark这块 Benchmark Go做Benchmark只要在目录下创建一个 test go后缀的文件 然后
  • Java项目毕业设计:电脑城销售商城网站(java+springboot+vue+mysql)

    运行环境 开发工具 IDEA Eclipse 数据库 MYSQL5 7 应用服务 Tomcat7 Tomcat8 使用框架springboot vue 项目介绍 随着科技的发展 人们对电子产品的依赖越来越严重 尤其是像电脑和手机这些日常生活
  • 前端获取数据常见的几种方法

    1 原生获取ajax
  • requset-使用BeanUtils封装表单提交的数据到javaBean对象中

    request对象请求参数过多 可以将数据封装到对象 使用BeanUtils解决这个问题 设置一个登录页面准备提交表单数据 username password 导入BeanUtils相关jar包 创建Servlet获取请求参数 调用Bean
  • 84.柱状图中最大的矩形

    84 柱状图中最大的矩形 给定 n 个非负整数 用来表示柱状图中各个柱子的高度 每个柱子彼此相邻 且宽度为 1 求在该柱状图中 能够勾勒出来的矩形的最大面积 示例 1 输入 heights 2 1 5 6 2 3 输出 10 解释 最大的矩
  • vim 删除一整块,vim 删除一整行

    陈永鹏的微博 陈永鹏的csdn博客地址 http blog csdn net chenyoper陈永鹏的博客园地址 http www cnblogs com Yoperchen dd 删除游标所在的一整行 常用 ndd n为数字 删除光标所
  • JavaScript判断数组是否为空、 判断数据类型

    数组 let arr 在进行if 判断数组时 在new Array 一个空数组时 是一个Object对象 所以if arr 时是true 在进行数组直接与true和false的布尔类型比较时 默认是将数组和布尔类型都转化为了Number类型
  • Vtk多个actor绑定选中事件

    Vtk多个actor绑定选中事件 1 交互只有 放大 移动 沿着z轴旋转 2 增加选中回调 3 增加部分模型隐藏 效果 项目地址 在官方案例基础上改的 案例 https kitware github io vtk examples site
  • 后端系统开发之工作和面试中的gdb

    gdb是C C 程序员必备的专业技能 工作中gdb最常用的场景有两个 一个是分析core文件 另一个是调试程序 分析core文件的方法如下 1 gdb 程序名 core文件名 2 bt或where命令查看堆栈信息 3 进入某个栈 f N f
  • Ubuntu + CUDA9.0 + tensorflow-gpu 安装过程

    Ubuntu CUDA9 0 tensorflow gpu 安装过程 简介 tensorflow支持CUDA9 0和cuDNN7 0 因此本教程是在该版本基础上进行安装的 我的电脑CPU是Intel core i7 4710MQ GPU是G
  • torch.nn.Embedding是否有梯度,是否会被训练

    结论 会被训练 测试代码 import torch from torch nn import Embedding class Model torch nn Module def init self super Model self init
  • 微信小程序自定义顶部导航,滚动页面顶部导航颜色渐变

    微信小程序自定义顶部导航栏 使背景图置顶 当向上滚动页面时 实现顶部导航颜色渐变 效果图 实现方法 一 在pages json中设置 navigationStyle custom 代码如下 示例 path pages home home s