| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | 
							- <template>
 
- 	<view>
 
- 		<page-head :title="title"></page-head>
 
- 		<view class="uni-padding-wrap">
 
- 			<view class="uni-btn-v">
 
- 				<button class="target" type="default" @tap="actionSheetTap">弹出action sheet</button>
 
- 			</view>
 
- 		</view>
 
- 	</view>
 
- </template>
 
- <script>
 
- 	export default {
 
- 		data() {
 
- 			return {
 
- 				title: 'action-sheet',
 
- 				buttonRect: {}
 
- 			}
 
- 		},
 
- 		// #ifdef H5
 
- 		onReady() {
 
- 			this.getNodeInfo()
 
- 			window.addEventListener('resize', this.getNodeInfo)
 
- 		},
 
- 		beforeDestroy() {
 
- 			window.removeEventListener('resize', this.getNodeInfo)
 
- 		},
 
- 		// #endif
 
- 		methods: {
 
- 			actionSheetTap() {
 
- 				const that = this
 
- 				uni.showActionSheet({
 
- 					title: '标题',
 
- 					itemList: ['item1', 'item2', 'item3', 'item4'],
 
- 					popover: {
 
- 						// 104: navbar + topwindow 高度,暂时 fix createSelectorQuery 在 pc 上获取 top 不准确的 bug
 
- 						top: that.buttonRect.top + 104  + that.buttonRect.height,
 
- 						left: that.buttonRect.left + that.buttonRect.width / 2
 
- 					},
 
- 					success: (e) => {
 
- 						console.log(e.tapIndex);
 
- 						uni.showToast({
 
- 							title: "点击了第" + e.tapIndex + "个选项",
 
- 							icon: "none"
 
- 						})
 
- 					}
 
- 				})
 
- 			},
 
- 			// #ifdef H5
 
- 			getNodeInfo() {
 
- 				uni.createSelectorQuery().select('.target').boundingClientRect().exec((ret) => {
 
- 					const rect = ret[0]
 
- 					if (rect) {
 
- 						this.buttonRect = rect
 
- 					}
 
- 				});
 
- 			}
 
- 			// #endif
 
- 		}
 
- 	}
 
- </script>
 
 
  |