zoukankan      html  css  js  c++  java
  • VUE 回到顶部

    1.新建组件mmGoTop.vue

    <template>
        <div id="goTop">
            <div class="goTop" v-show="goTopShow" @click="goTop">
                <i class="el-icon-caret-top goTopIcon"></i>
            </div>
        </div>
    </template>
    <script>
    export default {
        name: "mmGoTop",
        data() {
            return {
                scrollTop: "",
                goTopShow: false
            };
        },
        watch: {
            scrollTop(val) {
                if (this.scrollTop > 500) {
                    this.goTopShow = true;
                } else {
                    this.goTopShow = false;
                }
            }
        },
        methods: {
            handleScroll() {
                this.scrollTop =
                    window.pageYOffset ||
                    document.documentElement.scrollTop ||
                    document.body.scrollTop;
                if (this.scrollTop > 500) {
                    this.goTopShow = true;
                }
            },
            goTop() {
                let timer = null,
                    _that = this;
                cancelAnimationFrame(timer);
                timer = requestAnimationFrame(function fn() {
                    if (_that.scrollTop > 0) {
                        _that.scrollTop -= 250;
                        document.body.scrollTop = document.documentElement.scrollTop =
                            _that.scrollTop;
                        timer = requestAnimationFrame(fn);
                    } else {
                        cancelAnimationFrame(timer);
                        _that.goTopShow = false;
                    }
                });
            }
        },
        mounted() {
            window.addEventListener("scroll", this.handleScroll);
        },
        destroyed() {
            window.removeEventListener("scroll", this.handleScroll);
        }
    };
    </script>
    
    <style scoped>
    .goTop {
        position: fixed;
        z-index: 98;
        right: 0;
        bottom: 2rem;
        width: 1.1rem;
        height: 1rem;
        background: transparent;
        cursor: pointer;
        background-image: url(~@/assets/img/return-top.png);
        background-size: 100% 100%;
        background-repeat: no-repeat;
        background-position: center center;
    }
    .goTop:hover .goTopIcon {
        color: rgba(51, 153, 255, 1);
    }
    .goTopIcon {
        font-size: .2rem;
        color: rgba(51, 153, 255, 0.8);
    }
    </style>

    2.使用组件mmGoTop

    <mm-go-top>回到顶部</mm-go-top>
    // 回到顶部
    import mmGoTop from "@/view/train/component/mmGoTop";
  • 相关阅读:
    Linux Shell 重定向输入和输出
    NDK Cmake
    测试
    20行Python代码爬取王者荣耀全英雄皮肤
    SSH开发模式——Struts2(第一小节)
    JavaWeb开发——软件国际化(动态元素国际化)
    JavaWeb开发——软件国际化(文本元素国际化)
    DBUtils框架的使用(下)
    DBUtils框架的使用(上)
    SSH开发模式——Struts2(第二小节)
  • 原文地址:https://www.cnblogs.com/miangao/p/13259774.html
Copyright © 2011-2022 走看看