# uni-app开发攻略 # 个人封面页 (透明导航栏、源码)

需求:制作一个类似于某博的个人主页的封面板块

效果图:

 思路:

拿到设计图以后,我们需要先进行拆解页面结构

这个页面主要由三大板块组成:导航栏+背景图+用户信息

拆解完结构以后,下一步是进行细分板块

看每一个板块里面有什么特点,会用到什么知识点

下面是每个版块的思路及知识点

一、导航栏:

(tip:这里我们采用的是uview里面的组件——u-navbar

所以第一步是先要在page.json里面的这个页面加上"navigationStyle":"custom"

然后我们通过看设计图,可以知道导航栏透明、没有下边框,

那我们就打开u-navbar.Vue或者组件文档,看看里面有哪个参数是有这些特征

 

注意尽量不要在这个文档里面,进行修改,因为这个是全局来的,

如果你修改的话,会影响其他页面的制作,所以我们只需要在标签里面加入这些参数就可以了

<!-- 页面顶部导航栏 -->
		<view>
			<u-navbar back-icon-name="nav-back"
                 back-icon-color="#FFFFFF" back-text="返回" 
                :background="background"
				class="navbar"
                :immersive="false"
                 :border-bottom="false">
				<view class="slot-wrap">
					<uni-icons type="search" 
                        class="headicon" 
                        size="20" color="#ffffff"> 
                     </uni-icons>
				</view>
			</u-navbar>
		</view>

二、背景图:

看设计图,可以得出效果是要让背景图铺满整一个封面

那这个时候,

我们就可以想到要使用 mode="widthFix"

(tip:widthfix:宽度不变,高度自动变化,保持原图宽高比不变)

<image class="nav-background" src="/static/mine/head/headbanner.png"
 mode="widthFix"></image>


.nav-background {
		position: fixed;
		left: 0;
		top: 0;
		width: 100%;
	}
	

三、用户信息板块:

里面一个重点是,文字都是显示在背景图上面

那就可以用到知识点:z-index

点击可以查看这个知识点的详解

再使用弹性布局进行布局就可以了

代码展示:


<template>
	<view>
		<!-- 页面顶部导航栏 -->
		<view>
			<u-navbar back-icon-name="nav-back" back-icon-color="#FFFFFF" 
			back-text="返回" :background="background"
				class="navbar" :immersive="false" :border-bottom="false">
				<view class="slot-wrap">
					<uni-icons type="search" class="headicon" size="20" color="#ffffff"></uni-icons>
				</view>
			</u-navbar>
		</view>
		<image class="nav-background" src="/static/mine/
		head/headbanner.png" mode="widthFix"></image>
		<!-- 页面封面图 -->
		<view class="head-banner">
			<!-- 用户信息栏 -->
			<view class="head-meg">
				<u-avatar :src="src" mode="circle"
				 :show-level="true" level-bg-color="#25AFA2" class="head-img">
				</u-avatar>
				<view class="head-meg-name">
					<view class="head-meg-info">
						<view class="head-meg-title">提提</view>
						<image class="head-meg-item" src="/static/mine/head/sex.png"></image>
						<image class="head-meg-item" src="/static/mine/head/grade.png"></image>
					</view>
					<view class="head-data-info">
						<view class="head-meg-data" v-for="(item,index) in headlist">
							<view class="head-meg-data-item">{{item.num}}</view>
							<view class="head-meg-data-title">{{item.title}}</view>
						</view>
					</view>
				</view>
			</view>
			<view class="head-garde">
				<image src="/static/mine/attestation.png"
				 mode="" class="head-garde-icon"></image>
				<view class="head-garde-title">情感专家</view>
				<view class="head-garde-title tip">用户的签名签名</view>
			</view>
		</view>
		
	</view>
</template>

<script>
	export default {
		data() {
			return {
				background: {
					backgroundColor: 'transparent'
				},
				src: 'https://up.enterdesk.com/edpic/2e/78/97/2e789,
				7af2087369fbbdf5d0337647489.jpg',
				headlist: [{
						num: '335345万',
						title: '粉丝'
					},
					{
						num: '46656',
						title: '关注'
					},
					{
						num: '4534亿',
						title: '转评赞'
					},
				],
				uselist: [{
						cate_name: '相册'
					},
					{
						cate_name: '文章'
					},
					{
						cate_name: '话题'
					},

				],
				current: '0',
			

			}
		},
		methods: {
			
			}
		}
	}
</script>

<style scoped lang="scss">
	.sticky {
		width: 750rpx;
		height: 120rpx;
		background-color: #2979ff;
		color: #fff;
		padding: 24rpx;
	}

	.album-line {
		margin-top: 10rpx;
		width: 750rpx;
		height: 15rpx;
		background-color: #ededed;
	}

	.navbar {
		opacity: 1;
		font-size: 30px;
		font-family: Microsoft YaHei, Microsoft YaHei-Regular;
		font-weight: bold;
		text-align: left;
		color: #ffffff;

	}

	.slot-wrap {
		display: flex;
		padding: 0 30rpx;
		margin-left: auto;
		/* 如果您想让slot内容占满整个导航栏的宽度 */
		/* flex: 1; */
		/* 如果您想让slot内容与导航栏左右有空隙 */
		/* padding: 0 30rpx; */

	}

	.nav-background {
		position: fixed;
		left: 0;
		top: 0;
		width: 100%;
	}

	.head-banner {
		margin-top: 250rpx;
		height: 160rpx;

		.head-meg {
			display: flex;
			width: 725rpx;
			padding-left: 25rpx;

			.head-meg-name {
				padding-left: 33rpx;
				z-index: 1;

				.head-meg-info {
					display: flex;
					padding-bottom: 15rpx;

					.head-meg-title {
						font-size: 32rpx;
						font-family: Microsoft YaHei, Microsoft YaHei-Regular;
						font-weight: bold;
						text-align: left;
						color: #ffffff;
						padding-right: 12rpx;
					}

					.head-meg-item {
						width: 30rpx;
						height: 30rpx;
						padding-left: 12rpx;
						padding-top: 5rpx;
					}

				}

				.head-data-info {
					display: flex;

					.head-meg-data {
						display: flex;
						padding-right: 40rpx;

						.head-meg-data-item {
							font-size: 24rpx;
							font-family: Microsoft YaHei, Microsoft YaHei-Regular;
							font-weight: 400;
							text-align: left;
							color: #ffffff;
							padding-right: 10rpx;
						}

						.head-meg-data-title {
							font-size: 24rpx;
							font-family: Microsoft YaHei, Microsoft YaHei-Regular;
							font-weight: 400;
							text-align: left;
							color: #ffffff;
						}
					}
				}
			}
		}
	}

	.head-garde {
		display: flex;
		align-items: baseline;
		padding-left: 40rpx;
		padding-top: 20rpx;

		.head-garde-icon {
			width: 23rpx;
			height: 23rpx;
			padding-right: 10rpx;
		}

		.head-garde-title {
			z-index: 1;
			height: 25rpx;
			font-size: 18rpx;
			font-family: Microsoft YaHei, Microsoft YaHei-Regular;
			font-weight: 400;
			color: #fffefe;
		}

		.tip {
			padding-left: 40rpx;
		}

	}

	}
</style>
<style>
	page {
		background-color: #ededed;
	}
</style>
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
UniApp是一种基于Vue.js开发跨平台应用的框架,它的开源代码可以通过GitHub获取。UniApp的开源代码是指官方团队提供的框架源代码,让开发者能够自行查阅并进行修改、二次开发。通过开源代码,开发者可以了解UniApp的工作原理、结构和设计思路,学习和掌握UniApp的开发技术和实现细节。 UniApp的开源代码包含了Uni-CLI、UniSDK、UniApp核心JS库等多个组件和模块。其中,Uni-CLI是UniApp的命令行工具,提供了项目开发、打包、运行等一系列命令,通过它可以创建、管理和构建UniApp项目。UniSDK是UniApp的开发工具,提供了丰富的API和组件,帮助开发者实现各种功能和效果。UniApp核心JS库则是框架的核心代码,包含了各种运行时的逻辑和功能,如生命周期管理、路由控制、面渲染等。 通过阅读UniApp的开源代码,开发者可以深入了解UniApp的实现细节,理解框架中的各个概念和机制。同时,开发者还可以根据自己的需求和偏好对UniApp进行定制化,通过修改源代码来扩展和优化UniApp的功能。此外,开源代码还促进了开发者之间的合作和交流,他们可以通过GitHub等平台共享自己的修改和改进,共同推动UniApp的发展和进步。 总之,UniApp的开源代码为开发者提供了深入了解UniApp框架的机会,使他们能够更好地使用和定制UniApp,同时也促进了开发者之间的交流和协作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值