点击按钮回到顶部

1.uniapp项目

html

topShow在data中定义默认为false

	<view class="arrowUp"   v-if="topShow"
		 @click="toTop">
			<!-- :class="topShow?'arrowUp':'arrowNone'" @click="toTop"> -->
			<image src="@/static/aichooseSchool/ic_up_arrow.png" mode="aspectFill"></image>
		</view>

css

.arrowUp{
		position:fixed;
		background-color: #fff;
		bottom: 200rpx;
		right: 80rpx;
		z-index: 80;
		width: 80rpx;
		height: 80rpx;
		display: block;
		animation:  toUp 0.3s;
		@keyframes toUp {
			0%{
				right: -80rpx;
			}
			100%{
				right:80rpx;
			}
		}
		>image{
			width: 100%;
			height: 100%;
		}
	}

页面滚动事件与onLoad,onShow同级 

onPageScroll(e) {
        this.topShow = e.scrollTop > 600
    },

 可参考官网 uni.pageScrollTo(OBJECT) | uni-app官网

	//回到顶部
		toTop(){
			uni.pageScrollTo({
								scrollTop: 0,
								duration: 300
							});

		},

2.vue项目

 <img src="../../../assets/images/ic_toTop_default.png" class="imgStyle" v-if="btnFlag" @click="toTop" />

btnFlag在data中默认定义false

mounted() {
    window.addEventListener("scroll", this.scrollToTop);
  },


  destroyed() {
    window.removeEventListener("scroll", this.scrollToTop);
  },

methods:{

    //回到顶部
    toTop() {
      const that = this;
      let timer = setInterval(() => {
        let ispeed = Math.floor(-that.scrollTop / 5);
        document.documentElement.scrollTop = document.body.scrollTop =
          that.scrollTop + ispeed;
        if (that.scrollTop === 0) {
          clearInterval(timer);
        }
      }, 16);
    },

   // 为了计算距离顶部的高度,当高度大于60显示回顶部图标,小于60则隐藏
    scrollToTop() {
      let scrollTop =
        window.pageYOffset ||
        document.documentElement.scrollTop ||
        document.body.scrollTop;
      this.scrollTop = scrollTop;
      if (this.scrollTop > 200) {
        this.btnFlag = true;
      } else {
        this.btnFlag = false;
        this.indexAnchor = false;
      }
      if (this.scrollTop > 500) {
        this.indexAnchor = true;
      } else {
        this.indexAnchor = false;
      }
    },

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值