当前位置: 首页 > article >正文

jQuery位置方法

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

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

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

2. position() 获取元素偏移

  1. position() 方法用于返回被选元素相对于带有定位的父级偏移坐标,如果父级都没有定位,则以文档为准。
  2. 该方法有2个属性 left、top。position().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">
    <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
                // }); 不能是文档而是 html和body元素做动画
            })
        })
    </script>
</body>

</html>

 

参考:黑马


http://www.kler.cn/news/10176.html

相关文章:

  • 【Cesium 编程第一篇】概述、环境搭建、界面介绍
  • 总结815
  • Android Textview Button 等基础组件学习
  • Java-红黑树的实现
  • Python 小型项目大全 76~81
  • 【数据结构】二叉树的概念及结构
  • 在线文章生成器-文章生成器在线生成
  • 文件小注意
  • 摩兽Pesgo plus首发爆卖,全网关注度破亿!中国潮玩跨骑电自浪潮已至?
  • 家装产业的数字化,正在成为越来越多人的新共识
  • 使用java实现斗地主小游戏
  • MATLAB 不同格式点云文件的读取与显示(1)
  • RCIE练习题2之BGP4+配置
  • 《Java设计模式学习》适配器模式
  • STL基础知识
  • 推荐几款程序员提升工作效率的必备工具
  • 【ChatGPT】预训练模型微调及其应用(ChatGLM-6B、duckduckgo_search、GPT在科研的应用等)
  • 23年5月高项学习笔记10 —— 采购管理
  • 双交叉注意学习用于细粒度视觉分类和目标重新识别
  • 重磅!阿里版本【ChatGPT】开放测评!
  • Thinkphp6.0服务系统
  • argparse参数总结(方便之后自己看)
  • 模板学堂|DataEase图表样式解析
  • 科技成果评价最新攻略,你确定不来看看?
  • Python实现Imagenet数据集的合并和拆分
  • 一篇文章让你搞懂TypeScript中的??和?:和?.和!.是什么意思
  • 风电的Weibull分布及光电的Beta分布组合研究(Matlab代码实现)
  • 开源后台管理系统解决方案 boot-admin 简介
  • 关于ChatGPT人工智能浅谈
  • Oracle之PL/SQL游标练习题(三)