uniapp抽屉滑动效果

typescript 复制代码
<template>
	<view class="content">
		<image class="logo" src="/static/logo.png"></image>
		<view class="text-area">
			<text class="title">{{title}}</text>
		</view>
	</view>
	<view class="button-group">
		<button type="primary" @click="toggleDrawer">登录</button>
	</view>

	<!-- 抽屉 -->
	<view v-if="drawerVisible" class="drawer">
		<view class="drawer-content">
			<text>这是抽屉的内容</text>
			<button @click="toggleDrawer">关闭</button>
		</view>
	</view>
</template>
<script>
	export default {
		data() {
			return {
				title: '',
				drawerVisible: false // 控制抽屉显示状态
			}
		},
		methods: {
			toggleDrawer() {
				this.drawerVisible = !this.drawerVisible;
			}
		}
	}
</script>

使用v-if判当前的drawerVisible状态

在js中先初始化为false

下面是CSS代码

css 复制代码
.content {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		flex: 1; /* 使content占据剩余空间 */
	}

	.logo {
		height: 200rpx;
		width: 600rpx;
		margin-top: 200rpx;
		margin-left: auto;
		margin-right: auto;
		margin-bottom: 50rpx;
	}

	.text-area {
		display: flex;
		justify-content: center;
	}

	.title {
		font-size: 36rpx;
		color: #8f8f94;
	}

	.button-group {
		position: fixed;
		width: 100%;
		bottom: 150rpx;
		display: flex;
		justify-content: center;
	}

	button {
		width: 60%;
	}

	/* 抽屉背景遮罩 */
	.drawer {
		position: fixed;/*固定*/
		left: 0;
		right: 0;
		bottom: 0;
		top: 0;
		background-color: rgba(0, 0, 0, 0.5);
		display: flex;
		justify-content: center;
		align-items: flex-end;/*将内容垂直对齐到容器的底部,使抽屉从底部弹出*/
		z-index: 1000;/*将元素前移*/
		animation: fadeIn 0.3s ease;/*0。3秒淡入显示*/
	}

	/* 抽屉内容 */
	.drawer-content {
		background-color: #fff;
		width: 100%;
		padding: 20rpx;
		border-top-left-radius: 20rpx;
		border-top-right-radius: 20rpx;
		box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
		animation: slideUp 0.3s ease;/*应用slideUp动画,使抽屉内容区域在0.3秒内从底部滑入应用slideUp动画,使抽屉内容区域在0.3秒内从底部滑入*/
	}

	/* 淡入效果 */
	@keyframes fadeIn {
		from {
			opacity: 0;/*动画开始时,元素的透明度为0(完全透明)*/
		}
		to {
			opacity: 1;
		}
	}

	/* 滑入效果 */
	@keyframes slideUp {
		from {
			transform: translateY(100%);
		}
		to {
			transform: translateY(0);
		}
	}

	/* 滑出效果 */
	@keyframes slideDown {
		from {
			transform: translateY(0);
		}
		to {
			transform: translateY(100%);
		}
	}
相关推荐
一夜枫林2 小时前
uniapp自定义拖拽排列
前端·javascript·uni-app
良艺呐^O^2 小时前
uniapp实现app自动更新
开发语言·javascript·uni-app
thigh_d15 小时前
uniapp 安卓离线本地打包,Android Studio生成apk包
android·uni-app·android studio
珎珎啊15 小时前
uniapp+vue3移动端实现输入验证码
前端·javascript·uni-app
前端无涯15 小时前
uniapp跨平台开发---switchTab:fail page `/undefined` is not found
uni-app
老李不敲代码15 小时前
榕壹云预约咨询系统:基于ThinkPHP+MySQL+UniApp打造的灵活预约小程序解决方案
mysql·微信小程序·小程序·uni-app·php
fakaifa16 小时前
【最新版】西陆健身系统源码全开源+uniapp前端
前端·小程序·uni-app·开源·php·约课小程序·健身小程序
七七小报16 小时前
uniapp-商城-34-shop 购物车 选好了 进行订单确认
uni-app
万岳软件开发小城19 小时前
基于PHP+Uniapp的互联网医院源码:电子处方功能落地方案
开发语言·uni-app·php·软件开发·互联网医院系统源码·智慧医院app
anyup2 天前
uni-app 蓝牙打印:实现数据分片传输机制
前端·uni-app·trae