位置主要有三个: offset()position()、scrollTop()/scrollLeft()

1. offset() 设置获取元素偏移

  1. offset() 方法设置或返回被选元素相对文档偏移坐标父级没有关系
  2. offset()方法返回的是一个对象
  3. 该方法有2个属性 lefttopoffset().top  用于获取距离文档顶部距离offset().left 用于获取距离文档左侧的距离。
  4. 可以设置元素偏移offset({ top: 10, left: 30 });

2. position() 获取元素偏移

  1. position() 方法用于返回被选元素相对带有定位父级偏移坐标,如果父级没有定位,则以文档为准。
  2. 该方法有2个属性 lefttopposition().top 用于获取距离定位父级顶部的距离,position().left 用于获取距离定位父级左侧的距离。
  3. 该方法只能获取,不能设置偏移

3. scrollTop()/scrollLeft() 设置或获取元素被卷去的头部和左侧

  1. scrollTop() 方法设置或返回被选元素被卷去的头部
  2. 不跟参数获取,参数为不带单位数字则是设置被卷去的头部

案例返回顶部

做法1:$(document).scrollTop(0);

这个效果是直接返回顶部,所以考虑第二种方法。

做法2:带有动画的返回顶部

  1. 核心原理使用animate动画返回顶部
  2. animate动画函数里面有个scrollTop 属性可以设置位置
  3. 但是是元素做动画,因此 $(“body,html”).animate({scrollTop: 0})。而不是document
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8"&gt;
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        body {
            height: 2000px;
        }
        
        .back {
            position: fixed;
            width: 50px;
            height: 50px;
            background-color: pink;
            right: 30px;
            bottom: 100px;
            display: none;
        }
        
        .container {
            width: 900px;
            height: 500px;
            background-color: skyblue;
            margin: 400px auto;
        }
    </style>
    <script src="jquery.min.js"></script>
</head>

<body>
    <div class="back">返回顶部</div>
    <div class="container">
    </div>
    <script>
        $(function() {
            $(document).scrollTop(100);
            // 被卷去的头部 scrollTop()  / 被卷去的左侧 scrollLeft()
            // 页面滚动事件
            var boxTop = $(".container").offset().top;
            $(window).scroll(function() {
                // console.log(11);
                console.log($(document).scrollTop());
                if ($(document).scrollTop() >= boxTop) {
                    $(".back").fadeIn();
                } else {
                    $(".back").fadeOut();
                }
            });
            // 返回顶部
            $(".back").click(function() {
                // $(document).scrollTop(0);
                $("body, html").stop().animate({
                    scrollTop: 0
                });
                // $(document).stop().animate({
                //     scrollTop: 0
                // }); 不能是文档而是 htmlbody元素做动画
            })
        })
    </script>
</body>

</html>

 

参考黑马

原文地址:https://blog.csdn.net/qq_51387458/article/details/130038427

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_33300.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注