uni-app:实现点击按钮出现底部弹窗(uni.showActionSheet+自定义)

一、通过uni.showActionSheet实现底部选择

效果

代码

html 复制代码
<template>
  <view>
    <button @click="showActionsheet">点击打开弹窗</button>
  </view>
</template>

<script>
export default {
  methods: {
    showActionsheet() {
      uni.showActionSheet({
        itemList: ['选项1', '选项2', '选项3'],
        success: (res) => {
          console.log('选择了第' + (res.tapIndex + 1) + '个选项');
        },
        fail: (err) => {
          console.log('弹窗取消');
        }
      });
    }
  }
};
</script>

二、自定义底部弹出窗

效果

代码

html 复制代码
<template>
	<view>
		<button @click="togglePopup">点击打开弹窗</button>
		<view v-if="showPopup" class="popup">
			<view class="content">
				<view class="line1">
					<view>料号编辑</view>
				</view>
				<view class="line2">
					<view>料号:</view>
					<view>料号名称:</view>
					<view>规格型号:</view>
					<view>单位:</view>
				</view>
			</view>
			<view class="btn-group">
				<view class="btn_position">
					<view class="cancel" @click="cancel">取消</view>
					<view class="submit" @click="submit">提交</view>
				</view>
			</view>
		</view>
		<view v-if="showPopup" class="mask" @click="togglePopup"></view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				showPopup: false,
			};
		},
		methods: {
			togglePopup() {
				this.showPopup = !this.showPopup;
			},
			submit() {
				this.showPopup = false;
			},
			cancel() {
				this.showPopup = false;
			}
		}
	};
</script>

<style lang="scss">
	// 弹窗效果
	.popup {
		position: fixed;
		bottom: 0;
		left: 0;
		width: 100%;
		background-color: #fff;
		// padding: 20rpx;
		box-sizing: border-box;
		z-index: 999;
	}

	// 遮罩层
	.mask {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-color: rgba(0, 0, 0, 0.5);
		z-index: 888;
	}

	// 弹窗内容
	.content {
		.line1 {
			background-color:#6ea8e7;
			text-align: center;
			padding: 20rpx;
		}

		.line2 {
			padding: 20rpx;
			// border-bottom: 1px solid black;

			view {
				margin-bottom: 10rpx;
			}
		}
	}

	// 按钮样式
	.btn-group {
		box-shadow: 0px -2px 6px rgba(0, 0, 0, 0.5); /* 示例阴影参数,根据需要进行调整 */
		.btn_position {
			display: flex;
			width: 100%;
			.cancel {
				width: 50%;
				text-align: center;
				padding: 20rpx 0;
				color: #519fe7;
			}

			.submit {
				width: 50%;
				background-color: #519fe7;
				text-align: center;
				padding: 20rpx 0;
				color: #fff;
			}
		}

	}
</style>
相关推荐
十五春会1 天前
【uniapp】App平台展示pdf文件
pdf·uni-app
请叫我欧皇i1 天前
保姆级教程vscode创建uniapp vue3+ts+pinia项目并实现自动导入、打包功能
ide·vscode·uni-app
海鸥两三1 天前
Uni-App(Vue3 + TypeScript)项目结构详解 ------ 以 Lighting-UniApp 为例,提供源代码
vue.js·typescript·uni-app·1024程序员节
知识分享小能手1 天前
uni-app 入门学习教程,从入门到精通,uni-app 企业项目实战:鲁嗑瓜子项目开发知识点(9)
前端·javascript·学习·微信小程序·小程序·uni-app·vue
知识分享小能手1 天前
uni-app 入门学习教程,从入门到精通,uni-app中uCharts组件学习((8)
vue.js·学习·ui·微信小程序·小程序·uni-app·echarts
社会底层无业大学生1 天前
uniapp微信小程序简单表格展示
微信小程序·小程序·uni-app·vue·1024程序员节
2501_915918411 天前
iOS 26 查看电池容量与健康状态 多工具组合的工程实践
android·ios·小程序·https·uni-app·iphone·webview
2501_915909061 天前
iOS 架构设计全解析 从MVC到MVVM与使用 开心上架 跨平台发布 免Mac
android·ios·小程序·https·uni-app·iphone·webview
2501_916008892 天前
Web 前端开发常用工具推荐与团队实践分享
android·前端·ios·小程序·uni-app·iphone·webview
2501_915921432 天前
“HTTPS 个人化”实战,个人站点与设备调试的部署、验证与抓包排查方法
网络协议·http·ios·小程序·https·uni-app·iphone