| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 | 
							- <template>
 
- 	<view class="uni-load-more">
 
- 		<view class="uni-load-more__img" v-show="status === 'loading' && showIcon">
 
- 			<view class="load1">
 
- 				<view :style="{background:color}"></view>
 
- 				<view :style="{background:color}"></view>
 
- 				<view :style="{background:color}"></view>
 
- 				<view :style="{background:color}"></view>
 
- 			</view>
 
- 			<view class="load2">
 
- 				<view :style="{background:color}"></view>
 
- 				<view :style="{background:color}"></view>
 
- 				<view :style="{background:color}"></view>
 
- 				<view :style="{background:color}"></view>
 
- 			</view>
 
- 			<view class="load3">
 
- 				<view :style="{background:color}"></view>
 
- 				<view :style="{background:color}"></view>
 
- 				<view :style="{background:color}"></view>
 
- 				<view :style="{background:color}"></view>
 
- 			</view>
 
- 		</view>
 
- 		<text class="uni-load-more__text" :style="{color:color}">{{status === 'more' ? contentText.contentdown : (status === 'loading' ? contentText.contentrefresh : contentText.contentnomore)}}</text>
 
- 	</view>
 
- </template>
 
- <script>
 
- 	export default {
 
- 		name: "uni-load-more",
 
- 		props: {
 
- 			status: {
 
- 				//上拉的状态:more-loading前;loading-loading中;noMore-没有更多了
 
- 				type: String,
 
- 				default: 'more'
 
- 			},
 
- 			showIcon: {
 
- 				type: Boolean,
 
- 				default: true
 
- 			},
 
- 			color: {
 
- 				type: String,
 
- 				default: "#777777"
 
- 			},
 
- 			contentText: {
 
- 				type: Object,
 
- 				default () {
 
- 					return {
 
- 						contentdown: "上拉显示更多",
 
- 						contentrefresh: "正在加载...",
 
- 						contentnomore: "没有更多数据了"
 
- 					};
 
- 				}
 
- 			}
 
- 		},
 
- 		data() {
 
- 			return {}
 
- 		}
 
- 	}
 
- </script>
 
- <style>
 
- 	@charset "UTF-8";
 
- 	.uni-load-more {
 
- 		display: flex;
 
- 		flex-direction: row;
 
- 		height: 80upx;
 
- 		align-items: center;
 
- 		justify-content: center
 
- 	}
 
- 	.uni-load-more__text {
 
- 		font-size: 28upx;
 
- 		color: #999
 
- 	}
 
- 	.uni-load-more__img {
 
- 		height: 24px;
 
- 		width: 24px;
 
- 		margin-right: 10px
 
- 	}
 
- 	.uni-load-more__img>view {
 
- 		position: absolute
 
- 	}
 
- 	.uni-load-more__img>view view {
 
- 		width: 6px;
 
- 		height: 2px;
 
- 		border-top-left-radius: 1px;
 
- 		border-bottom-left-radius: 1px;
 
- 		background: #999;
 
- 		position: absolute;
 
- 		opacity: .2;
 
- 		transform-origin: 50%;
 
- 		animation: load 1.56s ease infinite
 
- 	}
 
- 	.uni-load-more__img>view view:nth-child(1) {
 
- 		transform: rotate(90deg);
 
- 		top: 2px;
 
- 		left: 9px
 
- 	}
 
- 	.uni-load-more__img>view view:nth-child(2) {
 
- 		transform: rotate(180deg);
 
- 		top: 11px;
 
- 		right: 0
 
- 	}
 
- 	.uni-load-more__img>view view:nth-child(3) {
 
- 		transform: rotate(270deg);
 
- 		bottom: 2px;
 
- 		left: 9px
 
- 	}
 
- 	.uni-load-more__img>view view:nth-child(4) {
 
- 		top: 11px;
 
- 		left: 0
 
- 	}
 
- 	.load1,
 
- 	.load2,
 
- 	.load3 {
 
- 		height: 24px;
 
- 		width: 24px
 
- 	}
 
- 	.load2 {
 
- 		transform: rotate(30deg)
 
- 	}
 
- 	.load3 {
 
- 		transform: rotate(60deg)
 
- 	}
 
- 	.load1 view:nth-child(1) {
 
- 		animation-delay: 0s
 
- 	}
 
- 	.load2 view:nth-child(1) {
 
- 		animation-delay: .13s
 
- 	}
 
- 	.load3 view:nth-child(1) {
 
- 		animation-delay: .26s
 
- 	}
 
- 	.load1 view:nth-child(2) {
 
- 		animation-delay: .39s
 
- 	}
 
- 	.load2 view:nth-child(2) {
 
- 		animation-delay: .52s
 
- 	}
 
- 	.load3 view:nth-child(2) {
 
- 		animation-delay: .65s
 
- 	}
 
- 	.load1 view:nth-child(3) {
 
- 		animation-delay: .78s
 
- 	}
 
- 	.load2 view:nth-child(3) {
 
- 		animation-delay: .91s
 
- 	}
 
- 	.load3 view:nth-child(3) {
 
- 		animation-delay: 1.04s
 
- 	}
 
- 	.load1 view:nth-child(4) {
 
- 		animation-delay: 1.17s
 
- 	}
 
- 	.load2 view:nth-child(4) {
 
- 		animation-delay: 1.3s
 
- 	}
 
- 	.load3 view:nth-child(4) {
 
- 		animation-delay: 1.43s
 
- 	}
 
- 	@-webkit-keyframes load {
 
- 		0% {
 
- 			opacity: 1
 
- 		}
 
- 		100% {
 
- 			opacity: .2
 
- 		}
 
- 	}
 
- </style>
 
 
  |