uni-app回到頂部功能(組件)


圖示

在components文件夾下新建back-top/back-top.vue,寫入以下代碼

<template>
	<view v-if="scrollTop>400" class="backTop" :class="{'mescroll-fade-in':isShowToTop}" @click="toTopClick">
		<text class="iconfont iconjiantou4" style="color: #fff;font-size:40rpx"></text>  <!-- 此處為iconfont圖標,可根據自己項目設置 -->
	</view>
</template>

<script>
	export default {
		name: "backTop",
		props: {
			id: {
				type: String,
				default: ''
			},
			scrollTop: {
				type: Number,
				default: 0
			},
			tab: {
				type: Boolean,
				default: false
			}
		},
		data() {
			return {
				isShowToTop: true
			}
		},
		methods: {
			toTopClick() {
				this.isShowToTop = false; // 回到頂部按鈕需要先隱藏,再執行回到頂部,避免閃動
				if (this.tab) {
					this.$emit('setScrollTop');
				} else {
					uni.pageScrollTo({
						scrollTop: 0,
						duration: 200
					});
				}


			}
		},

	}
</script>

<style>
	.mescroll-lazy-in,
	.mescroll-fade-in {
		-webkit-animation: mescrollFadeIn .3s ease forwards;
		animation: mescrollFadeIn .3s ease forwards;
	}

	.backTop {
		z-index: 999;
		position: fixed;
		right: 30rpx;
		bottom: 120rpx;
		/* #ifdef H5 */
		bottom: 220rpx;
		/* #endif */
		width: 100rpx;
		height: 100rpx;
		line-height: 100rpx;
		border-radius: 50%;
		transform: translateZ(0);
		-webkit-transform: translateZ(0);
		background-color: rgba(0,0,0,.35);
		text-align: center;
	}
</style>

在main.js中引入back-top組件

import backTop from '@/components/back-top/back-top.vue';
Vue.component('back-top',backTop)

在頁面中使用

<template>
	<view class="container">
		<view class="list-content">
			<back-top :scrollTop="scrollTopCount"></back-top>  <!-- 1、組件部分 -->
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				scrollTopCount:0,  //2、距離頂部距離
			};
		},
		
		//3、監聽滾動
		onPageScroll(e) {
			this.scrollTopCount = e.scrollTop;
		},
	}
</script>

注:以上功能實現基於插件: https://ext.dcloud.net.cn/plugin?id=1181


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM