• vue工程化:返回顶部和底部的动画效果


    这里写图片描述

    .

    <template>
        <div>
            <div class="scroll" :class="{show:isActive}">
                <div id="toTop" @click="toTop(step)">&lt;</div>
                <div id="toBottom" @click="toBottom(step)">&gt;</div>
            </div>
        </div>
    </template>
    <script>
        export default{
            props:{
                step:{   //此数据是控制动画快慢的
                    type:Number,
                    default:50  
                }
            },
            data(){
                return {
                    isActive:false,
                }
            },
            methods:{
                toTop(i){
                    //参数i表示间隔的幅度大小,以此来控制速度
                    document.documentElement.scrollTop-=i;
                    if (document.documentElement.scrollTop>0) {
                        var c=setTimeout(()=>this.toTop(i),16);
                    }else {
                        clearTimeout(c);
                    }
                },
                toBottom(i){
                    var clientHeight=document.documentElement.clientHeight||document.body.clientHeight;
                    var scrollHeight=document.documentElement.scrollHeight;
                    var height=scrollHeight-clientHeight; //超出窗口上界的值就是底部的scrolTop的值
                    document.documentElement.scrollTop+=i;
                    if (document.documentElement.scrollTop<height) {
                        var c=setTimeout(()=>this.toBottom(i),16);
                    }else {
                        clearTimeout(c);
                    }
                }
            },
            created(){
                var vm=this;
                window.onscroll=function(){
                    if (document.documentElement.scrollTop>60) {
                        vm.isActive=true;
                    }else {
                        vm.isActive=false;
                    }
                }
            }
        }
    </script>
    <style scoped>
        .scroll{
                position: fixed;
                right: 10px;
                bottom: 60px;
                 45px;
                height: 90px;
                cursor: pointer;
                display: none;
            }
            .scroll>div{
                 45px;
                height: 45px;
                transform: rotate(90deg);
                line-height: 45px;
                text-align: center;
                font-size: 35px;
                font-family: "黑体";
                background-color: rgba(0,0,0,.2);
                color: #fff;
            }
            .scroll>div:hover{
                background-color: rgba(0,0,0,.5);
            }
            .show{
                display: block;
            }
    </style>
  • 相关阅读:
    Web容器初始化过程
    基于LayUI实现前端分页功能
    Ubuntu16.04首次root登录设置
    Java集合Iterator迭代器的实现
    ThreadLocal的基本原理与实现
    Redis系列四之复制
    反应堆模式
    Netty学习之客户端创建
    Netty学习之服务器端创建
    Java NIO服务器端开发
  • 原文地址:https://www.cnblogs.com/fightjianxian/p/10694693.html
Copyright © 2020-2023  润新知