list-view.uvue 7.2 KB
Newer Older
1
<script>
D
DCloud_LXH 已提交
2

3 4 5 6 7
export default {
	data() {
		return {
			refresher_triggered_boolean: false,
			refresher_enabled_boolean: false,
8 9 10
			scroll_with_animation_boolean: false,
			show_scrollbar_boolean: true,
			rebound_boolean: true,
shutao-dc's avatar
shutao-dc 已提交
11
			scroll_y_boolean: true,
12 13 14 15 16
			scroll_x_boolean: false,
			upper_threshold_input: 50,
			lower_threshold_input: 50,
			scroll_top_input: 0,
			scroll_left_input: 0,
shutao-dc's avatar
shutao-dc 已提交
17 18
			refresher_background_input: "#FFF",
      scrollData: [] as Array <string>
19 20
		}
	},
shutao-dc's avatar
shutao-dc 已提交
21 22 23 24 25 26 27
  onLoad() {
  	let lists: Array < string > = []
  	for (let i = 0; i < 10; i++) {
  		lists.push("item---"+i)
  	}
  	this.scrollData = lists
  },
28 29 30 31 32 33 34 35 36 37 38 39
	methods: {
		list_view_click() { console.log("组件被点击时触发") },
		list_view_touchstart() { console.log("手指触摸动作开始") },
		list_view_touchmove() { console.log("手指触摸后移动") },
		list_view_touchcancel() { console.log("手指触摸动作被打断,如来电提醒,弹窗") },
		list_view_touchend() { console.log("手指触摸动作结束") },
		list_view_tap() { console.log("手指触摸后马上离开") },
		list_view_longpress() { console.log("如果一个组件被绑定了 longpress 事件,那么当用户长按这个组件时,该事件将会被触发。") },
		list_view_refresherpulling() { console.log("自定义下拉刷新控件被下拉") },
		list_view_refresherrefresh() { console.log("自定义下拉刷新被触发") },
		list_view_refresherrestore() { console.log("自定义下拉刷新被复位") },
		list_view_refresherabort() { console.log("自定义下拉刷新被中止") },
D
DCloud_LXH 已提交
40
		list_view_scrolltoupper() { console.log("滚动到顶部/左边,会触发 scrolltoupper 事件") },
41 42
		list_view_scrolltolower() { console.log("滚动到底部/右边,会触发 scrolltolower 事件") },
		list_view_scroll() { console.log("滚动时触发,event.detail = {scrollLeft, scrollTop, scrollHeight, scrollWidth, deltaX, deltaY}") },
shutao-dc's avatar
shutao-dc 已提交
43 44 45 46 47 48 49
		list_item_click() { console.log("list-item组件被点击时触发") },
		list_item_touchstart() { console.log("手指触摸list-item组件动作开始") },
		list_item_touchmove() { console.log("手指触摸list-item组件后移动") },
		list_item_touchcancel() { console.log("手指触摸list-item组件动作被打断,如来电提醒,弹窗") },
		list_item_touchend() { console.log("手指触摸list-item组件动作结束") },
		list_item_tap() { console.log("手指触摸list-item组件后马上离开") },
		list_item_longpress() { console.log("list-item组件被绑定了 longpress 事件,那么当用户长按这个组件时,该事件将会被触发。") },
50 51
		change_refresher_triggered_boolean(checked : boolean) { this.refresher_triggered_boolean = checked },
		change_refresher_enabled_boolean(checked : boolean) { this.refresher_enabled_boolean = checked },
52 53 54 55 56 57 58 59 60 61
		change_scroll_with_animation_boolean(checked : boolean) { this.scroll_with_animation_boolean = checked },
		change_show_scrollbar_boolean(checked : boolean) { this.show_scrollbar_boolean = checked },
		change_rebound_boolean(checked : boolean) { this.rebound_boolean = checked },
		change_scroll_y_boolean(checked : boolean) { this.scroll_y_boolean = checked },
		change_scroll_x_boolean(checked : boolean) { this.scroll_x_boolean = checked },
		confirm_upper_threshold_input(value : number) { this.upper_threshold_input = value },
		confirm_lower_threshold_input(value : number) { this.lower_threshold_input = value },
		confirm_scroll_top_input(value : number) { this.scroll_top_input = value },
		confirm_scroll_left_input(value : number) { this.scroll_left_input = value },
		confirm_refresher_background_input(value : string) { this.refresher_background_input = value }
62 63 64 65 66 67
	}
}
</script>

<template>
	<view class="main">
shutao-dc's avatar
shutao-dc 已提交
68
	<list-view :scroll-x="scroll_x_boolean" :scroll-y="scroll_y_boolean" :rebound="rebound_boolean" :upper-threshold="upper_threshold_input" :lower-threshold="lower_threshold_input" :scroll-top="scroll_top_input" :scroll-left="scroll_left_input" :show-scrollbar="show_scrollbar_boolean" :scroll-with-animation="scroll_with_animation_boolean" :refresher-enabled="refresher_enabled_boolean" :refresher-background="refresher_background_input" :refresher-triggered="refresher_triggered_boolean" @click="list_view_click" @touchstart="list_view_touchstart" @touchmove="list_view_touchmove" @touchcancel="list_view_touchcancel" @touchend="list_view_touchend" @tap="list_view_tap" @longpress="list_view_longpress" @refresherpulling="list_view_refresherpulling" @refresherrefresh="list_view_refresherrefresh" @refresherrestore="list_view_refresherrestore" @refresherabort="list_view_refresherabort" @scrolltoupper="list_view_scrolltoupper" @scrolltolower="list_view_scrolltolower" @scroll="list_view_scroll" style="width:100%;"><list-item v-for="key in scrollData" :key="key" @click="list_item_click" @touchstart="list_item_touchstart" @touchmove="list_item_touchmove" @touchcancel="list_item_touchcancel" @touchend="list_item_touchend" @tap="list_item_tap" @longpress="list_item_longpress" class="list-item"><text>{{key}}</text></list-item></list-view>
69 70
	</view>

71 72 73
	<!-- #ifdef APP -->
	<scroll-view style="flex:1">
	<!-- #endif -->
74 75 76
	<view class="content nvue">
			<boolean-data :defaultValue="false" title="设置当前下拉刷新状态,true 表示下拉刷新已经被触发,false 表示下拉刷新未被触发" @change="change_refresher_triggered_boolean"></boolean-data>
		<boolean-data :defaultValue="false" title="开启自定义下拉刷新" @change="change_refresher_enabled_boolean"></boolean-data>
shutao-dc's avatar
shutao-dc 已提交
77
		<boolean-data :defaultValue="false" title="是否在设置滚动条位置时使用滚动动画,设置false没有滚动动画" @change="change_scroll_with_animation_boolean"></boolean-data>
78
		<boolean-data :defaultValue="true" title="控制是否出现滚动条" @change="change_show_scrollbar_boolean"></boolean-data>
79
		<boolean-data :defaultValue="true" title="控制是否回弹效果" @change="change_rebound_boolean"></boolean-data>
shutao-dc's avatar
shutao-dc 已提交
80
		<boolean-data :defaultValue="true" title="允许纵向滚动" @change="change_scroll_y_boolean"></boolean-data>
81 82 83 84 85
		<boolean-data :defaultValue="false" title="允许横向滚动" @change="change_scroll_x_boolean"></boolean-data>
		<input-data defaultValue="50" title="距顶部/左边多远时(单位px),触发 scrolltoupper 事件" type="number" @confirm="confirm_upper_threshold_input"></input-data>
		<input-data defaultValue="50" title="距底部/右边多远时(单位px),触发 scrolltolower 事件" type="number" @confirm="confirm_lower_threshold_input"></input-data>
		<input-data defaultValue="0" title="设置竖向滚动条位置" type="number" @confirm="confirm_scroll_top_input"></input-data>
		<input-data defaultValue="0" title="设置横向滚动条位置" type="number" @confirm="confirm_scroll_left_input"></input-data>
shutao-dc's avatar
shutao-dc 已提交
86
		<input-data defaultValue="#FFF" title="设置自定义下拉刷新区域背景颜色" type="text" @confirm="confirm_refresher_background_input"></input-data>
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
	</view>
	<!-- #ifdef APP -->
	</scroll-view>
	<!-- #endif -->
</template>

<style>
.main {
	max-height: 500rpx;
	padding: 10rpx 0;
	border-bottom: 1px solid rgba(0,0,0,.06);
	flex-direction: row;
	justify-content: center;
}

.main .list-item {
shutao-dc's avatar
shutao-dc 已提交
103
	width: 750rpx;
shutao-dc's avatar
shutao-dc 已提交
104
	height: 480rpx;
105
	border: 1px solid #666;
D
DCloud_LXH 已提交
106 107
	background-color:#66ccff;
	align-items: center;
shutao-dc's avatar
shutao-dc 已提交
108
  justify-content: center;
109 110 111
}

</style>