| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 | 
							- <template>
 
- 	<view>
 
- 		<uni-card is-full :is-shadow="false">
 
- 			<text class="uni-h6">这是抽屉式导航组件使用示例,可以指定菜单左侧或者右侧弹出(仅初始化生效),组件内部可以放置任何内容。点击页面按钮即可显示导航菜单。</text>
 
- 		</uni-card>
 
- 		<uni-section title="左侧滑出" type="line">
 
- 			<view class="example-body">
 
- 				<button type="primary" @click="showDrawer('showLeft')"><text class="word-btn-white">显示Drawer</text>
 
- 				</button>
 
- 				<uni-drawer ref="showLeft" mode="left" :width="320" @change="change($event,'showLeft')">
 
- 					<view class="close">
 
- 						<button
 
- 							@click="closeDrawer('showLeft')"><text class="word-btn-white">关闭Drawer</text></button>
 
- 					</view>
 
- 				</uni-drawer>
 
- 			</view>
 
- 		</uni-section>
 
- 		<uni-section title="右侧滑出" type="line">
 
- 			<view class="example-body">
 
- 				<button type="primary" @click="showDrawer('showRight')"><text class="word-btn-white">显示Drawer</text>
 
- 				</button>
 
- 				<uni-drawer ref="showRight" mode="right" :mask-click="false" @change="change($event,'showRight')">
 
- 					<view class="scroll-view">
 
- 						<scroll-view class="scroll-view-box" scroll-y="true">
 
- 							<view class="info">
 
- 								<text class="info-text">右侧遮罩只能通过按钮关闭,不能通过点击遮罩关闭</text>
 
- 							</view>
 
- 							<view class="close">
 
- 								<button @click="closeDrawer('showRight')"><text
 
- 										class="word-btn-white">关闭Drawer</text></button>
 
- 							</view>
 
- 							<view class="info-content" v-for="item in 100" :key="item">
 
- 								<text>可滚动内容 {{item}}</text>
 
- 							</view>
 
- 							<view class="close">
 
- 								<button  @click="closeDrawer('showRight')"><text
 
- 										class="word-btn-white">关闭Drawer</text></button>
 
- 							</view>
 
- 						</scroll-view>
 
- 					</view>
 
- 				</uni-drawer>
 
- 			</view>
 
- 		</uni-section>
 
- 	</view>
 
- </template>
 
- <script>
 
- 	export default {
 
- 		data() {
 
- 			return {
 
- 				showRight: false,
 
- 				showLeft: false
 
- 			}
 
- 		},
 
- 		methods: {
 
- 			confirm() {},
 
- 			// 打开窗口
 
- 			showDrawer(e) {
 
- 				this.$refs[e].open()
 
- 			},
 
- 			// 关闭窗口
 
- 			closeDrawer(e) {
 
- 				this.$refs[e].close()
 
- 			},
 
- 			// 抽屉状态发生变化触发
 
- 			change(e, type) {
 
- 				console.log((type === 'showLeft' ? '左窗口' : '右窗口') + (e ? '打开' : '关闭'));
 
- 				this[type] = e
 
- 			}
 
- 		},
 
- 		onNavigationBarButtonTap(e) {
 
- 			if (this.showLeft) {
 
- 				this.$refs.showLeft.close()
 
- 			} else {
 
- 				this.$refs.showLeft.open()
 
- 			}
 
- 		},
 
- 		// app端拦截返回事件 ,仅app端生效
 
- 		onBackPress() {
 
- 			if (this.showRight || this.showLeft) {
 
- 				this.$refs.showLeft.close()
 
- 				this.$refs.showRight.close()
 
- 				return true
 
- 			}
 
- 		}
 
- 	}
 
- </script>
 
- <style lang="scss">
 
- .example-body {
 
- 	padding: 10px;
 
- }
 
- .scroll-view {
 
- 	/* #ifndef APP-NVUE */
 
- 	width: 100%;
 
- 	height: 100%;
 
- 	/* #endif */
 
- 	flex:1
 
- }
 
- // 处理抽屉内容滚动
 
- .scroll-view-box {
 
- 	flex: 1;
 
- 	position: absolute;
 
- 	top: 0;
 
- 	right: 0;
 
- 	bottom: 0;
 
- 	left: 0;
 
- }
 
- .info {
 
- 	padding: 15px;
 
- 	color: #666;
 
- }
 
- .info-text {
 
- 	font-size: 14px;
 
- 	color: #666;
 
- }
 
- .info-content {
 
- 	padding: 5px 15px;
 
- }
 
- .close {
 
- 	padding: 10px;
 
- }
 
- </style>
 
 
  |