scroll-view.uvue 3.7 KB
Newer Older
shutao-dc's avatar
shutao-dc 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
<template>
	<!-- #ifdef APP -->
	<scroll-view style="flex: 1">
		<!-- #endif -->
		<view>
			<page-head title="scroll-view,区域滚动视图"></page-head>
			<view class="uni-padding-wrap uni-common-mt">
				<view class="uni-title uni-common-mt">
					<text class="uni-title-text">Vertical Scroll</text>
					<text class="uni-subtitle-text">纵向滚动</text>
				</view>
				<view>
					<scroll-view :scroll-top="scrollTop" :scroll-y="true" class="scroll-Y" scroll-with-animation="true"
						@scrolltoupper="upper" @scrolltolower="lower" @scroll="scroll">
						<view id="demo1" class="scroll-view-item uni-bg-red"><text class="text">A</text></view>
						<view id="demo2" class="scroll-view-item uni-bg-green"><text class="text">B</text></view>
						<view id="demo3" class="scroll-view-item uni-bg-blue"><text class="text">C</text></view>
					</scroll-view>
				</view>
				<view @tap="goTop" class="uni-center uni-common-mt">
					<text class="uni-link">点击这里返回顶部</text>
				</view>

				<view class="uni-title uni-common-mt">
					<text class="uni-title-text">Horizontal Scroll</text>
					<text class="uni-subtitle-text">横向滚动</text>
				</view>
				<view>
					<scroll-view class="scroll-view_H" :scroll-x="true" @scroll="scroll" :scroll-left="120">
						<view id="demo1" class="scroll-view-item_H uni-bg-red"><text class="text">A</text></view>
						<view id="demo2" class="scroll-view-item_H uni-bg-green"><text class="text">B</text></view>
						<view id="demo3" class="scroll-view-item_H uni-bg-blue"><text class="text">C</text></view>
					</scroll-view>
				</view>

shutao-dc's avatar
shutao-dc 已提交
36
				<navigator url="/pages/component/scroll-view/scroll-view-props" hover-class="none">
shutao-dc's avatar
shutao-dc 已提交
37 38 39 40 41
				<button type="primary" class="button default-button">
					非下拉刷新的属性示例
				</button>
				</navigator>
				<view class="uni-common-pb"></view>
shutao-dc's avatar
shutao-dc 已提交
42
				<navigator url="/pages/component/scroll-view/scroll-view-refresher-props" hover-class="none">
shutao-dc's avatar
shutao-dc 已提交
43 44 45 46 47
				<button type="primary" class="button default-button">
					下拉刷新的属性示例
				</button>
				</navigator>
				<view class="uni-common-pb"></view>
shutao-dc's avatar
shutao-dc 已提交
48
				<navigator url="/pages/component/scroll-view/scroll-view-refresher" hover-class="none">
shutao-dc's avatar
shutao-dc 已提交
49 50 51
				<button type="primary" class="button default-button"> 默认下拉刷新示例 </button>
				</navigator>
				<view class="uni-common-pb"></view>
shutao-dc's avatar
shutao-dc 已提交
52
				<navigator url="/pages/component/scroll-view/scroll-view-custom-refresher-props" hover-class="none">
shutao-dc's avatar
shutao-dc 已提交
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
				<button type="primary" class="button default-button">
					自定义下拉刷新示例
				</button>
				</navigator>
				<view class="uni-common-pb"></view>
			</view>
		</view>
		<!-- #ifdef APP -->
	</scroll-view>
	<!-- #endif -->
</template>
<script lang="uts">
	export default {
		data() {
			return {
				scrollTop: 0,
				oldScrollTop: 0,
			}
		},
		methods: {
			upper: function (e : ScrollToUpperEvent) {
				console.log(e)
			},
			lower: function (e : ScrollToLowerEvent) {
				console.log(e)
			},
			scroll: function (e : ScrollEvent) {
				this.oldScrollTop = e.detail.scrollTop
			},
			goTop: function () {
				// 解决view层不同步的问题
				this.scrollTop = this.oldScrollTop
				this.$nextTick(function () {
					this.scrollTop = 0
				})
				uni.showToast({
					icon: 'none',
					title: '纵向滚动 scrollTop 值已被修改为 0',
				})
			}
		},
	}
</script>

<style>
	.scroll-Y {
		height: 300rpx;
	}

	.scroll-view_H {
		width: 100%;
		flex-direction: row;
	}

	.scroll-view-item {
		height: 300rpx;
		justify-content: center;
		align-items: center;
	}

	.scroll-view-item_H {
		width: 690rpx;
		height: 300rpx;
		justify-content: center;
		align-items: center;
	}

	.text {
		font-size: 36rpx;
		color: #ffffff;
	}

	.button {
		margin-top: 30rpx;
	}
</style>