Blame view

pages/component/scroll-view/scroll-view.vue 2.18 KB
4b045f7c   刘淇   江阴初始化项目
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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
  <template>
  	<view>
  		<page-head title="scroll-view,区域滚动视图"></page-head>
  		<view class="uni-padding-wrap uni-common-mt">
  			<view class="uni-title uni-common-mt">
  				Vertical Scroll
  				<text>\n纵向滚动</text>
  			</view>
  			<view>
  				<scroll-view :scroll-top="scrollTop" scroll-y="true" class="scroll-Y" @scrolltoupper="upper" @scrolltolower="lower"
  				@scroll="scroll">
  					<view id="demo1" class="scroll-view-item uni-bg-red">A</view>
  					<view id="demo2" class="scroll-view-item uni-bg-green">B</view>
  					<view id="demo3" class="scroll-view-item uni-bg-blue">C</view>
  				</scroll-view>
  			</view>
  			<view @tap="goTop" class="uni-link uni-center uni-common-mt">
  				点击这里返回顶部
  			</view>
  			
  			<view class="uni-title uni-common-mt">
  				Horizontal Scroll
  				<text>\n横向滚动</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">A</view>
  					<view id="demo2" class="scroll-view-item_H uni-bg-green">B</view>
  					<view id="demo3" class="scroll-view-item_H uni-bg-blue">C</view>
  				</scroll-view>
  			</view>
              <view class="uni-common-pb"></view>
  		</view>
  	</view>
  </template>
  <script>
  	export default {
  		data() {
  			return {
  				scrollTop: 0,
  				old: {
  					scrollTop: 0
  				}
  			}
  		},
  		methods: {
  			upper: function(e) {
  				console.log(e)
  			},
  			lower: function(e) {
  				console.log(e)
  			},
  			scroll: function(e) {
  				console.log(e)
  				this.old.scrollTop = e.detail.scrollTop
  			},
  			goTop: function(e) {
  				// 解决view层不同步的问题
  				this.scrollTop = this.old.scrollTop
  				this.$nextTick(function() {
  					this.scrollTop = 0
  				});
  				uni.showToast({
  					icon:"none",
  					title:"纵向滚动 scrollTop 值已被修改为 0"
  				})
  			}
  		}
  	}
  </script>
  
  <style>
  	.scroll-Y {
  		height: 300rpx;
  	}
  
  	.scroll-view_H {
  		white-space: nowrap;
  		width: 100%;
  	}
  
  	.scroll-view-item {
  		height: 300rpx;
  		line-height: 300rpx;
  		text-align: center;
  		font-size: 36rpx;
  	}
  
  	.scroll-view-item_H {
  		display: inline-block;
  		width: 100%;
  		height: 300rpx;
  		line-height: 300rpx;
  		text-align: center;
  		font-size: 36rpx;
  	}
  </style>