回到顶部按钮效果不对,另外还有一个问题

回到顶部按钮效果不对,另外还有一个问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$.fn.UiBackTop=function(){//效果没出来,现在的效果是刚进入页面时有按钮,一滚动就消失
        var windowHeight=$(window).height(),
            ui=$(this),
            el=$('<a class="backtop" href="#"></a>');
        ui.append(el);
        $(window).on("scroll",function(){
            var top=$("html,body").scrollTop();
            //兼容性的写法
            //var top = $("body").scrollTop() || $(document).scrollTop();第二种写法
            if(top>windowHeight){
               el.show();
               }else{
               el.hide();
               }
        });
        $(el).on("click",function(){
            $(window).scrollTop(0);
        });
    };
1
2
3
4
5
.backtop{positionfixed;bottom2px;right2px;displayblock;width40px;height40px;z-index9;colorwhite;
    background-color#00b3ec;background-positioncenter center;
    background-imageurl("../img/icon-go-up.png");background-repeatno-repeat;}
.backtop:hover{background-imagenone;}
.backtop:hover::after{content'回到顶部';text-aligncenter;line-height20px;displayblock;}

没有粘贴HTML主页了,老师可以弄个高度5000px的色块测试,效果不对

现在的效果:刚进入页面时有按钮,一滚动就消失

需要的效果:刚进入页面时没有按钮,滚动时超过窗口的高度或设置的高度显示,小于窗口的高度或设置的高度隐藏。显示的时候点击按钮会回到顶部。

另外的问题:现在回到顶部是直接回去,如何改写代码使得回去的时候有个滚动的动画效果,不知现阶段能否实现


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,老师帮你写了一个带动画且先隐藏,滚动到一定距离再显示的返回顶部的效果。同学可以根据代码进行改写

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title>返回顶部</title>
    <script src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
    <style type="text/css">
    .container {
        width:1280px;
        margin: 0 auto;
        height: auto;
        min-height: 100%;
        position: relative;
    }
    .content {
        height: 2000px;
        background: red;
    }
    .backtop {
        position: absolute;
        right: -130px;
        z-index: 5;
        width:60px;
        height:60px;
        background:blue;
    }
    </style>
</head>
<body>
    <div class="container">
        <div class="content">我是主内容,高度是2000px</div>
        <div class="backtop">返回顶部</div>
    </div>
    <script>
    $(function() {
        //backtop距浏览器顶端的距离,这个距离可以根据你的需求修改
        var topDistance = 500;
        //距离浏览器顶端多少距离开始显示backtop按钮,为了兼容不同分辨率的浏览器,建议这里设置值为1;
        var showDistance = 1;
        var thisTop = $(window).scrollTop() + topDistance;
        //设置backtop按钮top的css属性和属性值
        $('.backtop').css('top', thisTop);
        if ($(window).scrollTop() < showDistance) {
            $('.backtop').hide();
        }
        // 给窗口绑定一个滚动事件,当窗口滚动条滚动时执行
        $(window).scroll(function() {
            thisTop = $(this).scrollTop() + topDistance; //获取当前window向上滚动的距离
            $('.backtop').css('top', thisTop); //修改backtop按钮的top距离
            console.log(thisTop);
            if ($(this).scrollTop() > showDistance) {
                $('.backtop').fadeIn();
            } else {
                $('.backtop').fadeOut();
            }
        });
        // 给按钮绑定一个click事件,点击按钮时,返回顶部
        $('.backtop').click(function() {
            $('html ,body').animate({ scrollTop: 0 }, 300);
        });
    });
    </script>
</body>
</html>

如果我的回答帮助了你,希望采纳,祝学习愉快!

  • 迷失的小麦 提问者 #1
    老师能不能告诉我我粘贴的代码错在哪里
    2020-01-31 13:19:14
  • 迷失的小麦 提问者 #2
    showDistance在这里有什么意义
    2020-01-31 13:30:02
  • 迷失的小麦 提问者 #3
    按钮backtop的点击事件中的return false;在这里是什么作用
    2020-01-31 13:32:34
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码