• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
公子缘
博客园    首页    新随笔    联系   管理    订阅  订阅

Vue.之.回到顶部

Vue.之.回到顶部

 

  当页面出现上下滚动条时,页面右下角出现回到顶部功能。

  

  在页面上添加如下DIV(写的CSS内部样式),这个DIV功能:出现滚动条往下滑动,就显示出来,反之隐藏。点击DIV快速回到顶部。

     <div 
            style="{
                height: 60px;
                width: 50px;
                position: fixed;
                bottom: 35px;
                right: 15px;
                background-color: #f2f5f6;
                box-shadow: 0 0 6px rgba(0,0,0, .12);
                text-align: center;
                line-height: 60px;
                color: #1989fa;
                cursor: pointer;
                -webkit-transform: rotate(90deg);
                -moz-transform: rotate(90deg);
                -o-transform: rotate(90deg);
                -ms-transform: rotate(90deg);
                transform: rotate(90deg);
            }"
            v-if="btnFlag"
            @click="backTop"
            >
            <<
        </div>

 

 

  在加入EScript代码.

<script> 
    export default { 
        data() {
            return {
                btnFlag: false
            }
        }, 
        mounted () {
            window.addEventListener('scroll', this.scrollToTop)
        },
        destroyed () {
            window.removeEventListener('scroll', this.scrollToTop)
        }, 
        methods: {
            // 点击图片回到顶部方法,加计时器是为了过渡顺滑
            backTop () {
                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 () {
                const that = this
                let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
                    that.scrollTop = scrollTop
                if (that.scrollTop > 60) {
                    that.btnFlag = true
                } else {
                    that.btnFlag = false
                }
            }
        } 
    }
</script>

 

 

  效果图:(滚动条在顶部,div不显示;往下滑动滚动条,div显示)

                        

 

 

 

  

若现在就觉得失望无力,未来那么远你该怎么扛 —— 致自己
posted @ 2019-09-05 19:57  公子缘  阅读(3027)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3