web学习笔记(二十七)PC端网页特效

目录

1.元素偏移量offset

1.1什么是offset

1.2offset系列常用属性

1.3offset总结

1.4offset 与 style 区别

2.元素可视区client 

3.元素滚动scroll

4.总结 

4.1三大系列总结

4.2 mouseenter 和mouseover的区别


1.元素偏移量offset

1.1什么是offset

        offset就是偏移量。offset系列有很多重要的属性需要我们进行记忆。我们使用offset系列相关属性可以得到该元素的位置(偏移)、大小等。

1.2offset系列常用属性

offset系列属性

作用

element.offsetParent

返回作为该元素带有定位的父级元素如果父级都没有定位则返回body

element.offsetTop

返回元素相对带有定位父元素上方的偏移

element.offsetLeft

返回元素相对带有定位父元素左边框的偏移

element.offsetWidth

返回自身包括padding、边框、内容区的宽度,返回数值不带单位

element.offsetHeight

返回自身包括padding、边框、内容区的高度,返回数值不带单位

1.3offset总结

  • offset可以获得元素距离带有定位的父级元素的位置 。若父级元素都没有带定位,则返回距离body的距离。
  • offset返回的数值都是不带单位的。
  • 通过offset返回的宽度和高度都是元素自身的内容区加上左右边框border大小再加上左右内边距padding的总值,也是不带单位的。

1.4offset 与 style 区别

offset

  • offset可以得到任意样式表中的样式值(行内和外部)
  • offset系列获得的数值是没有单位的
  • offsetWidth 包含 padding+ border+width
  • offsetWidth等属性是只读属性,只能获取不能赋值
  • 所以,我们想要获取元素大小位置,用offset更合适

style

  • style只能得到行内样式表中的样式值
  • style.width获得的是带有单位的字符串
  • style.width 获得不包含padding和border 的值
  • style.width是可读写属性,可以获取也可以赋值
  • 所以,我们想要给元素更改值,则需要用style改变

2.元素可视区client 

        client是客户端的意思,我们可以使用client的相关属性来获取可视区的相关信息。通过client的相关属性可以动态的得到改元素的边框大小、元素大小等。

client系列属性

作用

element.clientTop

返回元素上边框的大小

element.clientLeft

返回元素边框的大小

element.clientWidth

返回自身包括padding、内容区的宽度,不含边框,返回数值不带单位

element.clientHeight

返回自身包括padding、内容区的高度,不含边框,返回数值不带单位

 

3.元素滚动scroll

scroll是滚动的,我们使用scroll相关的属性可以动态获得元素的大小、滚动距离等。

scroll系列属性

作用

element.scrollTop

返回被卷去的上恻距离,返回数值不带单位

element.scrollLeft

返回被卷去的左恻距离,返回数值不带单位

element.scrollWidth

返回自身实际的宽度,不含边框,返回数值不带单位

element.scrollHeight

返回自身实际的高度,不含边框,返回数值不带单位

4.总结 

4.1三大系列总结

三大系列大小对比

作用

element.offsetWidth

返回自身包括padding、边框、内容区的宽度,返回数值不带单位

element.clientWidth

返回自身包括padding、内容区的宽度,不含边框,返回数值不带单位

element.scrollWidth

返回自身实际的宽度,不含边框,返回数值不带单位

  • offset系列经常用于获得元素位置
  • client 经常用于获取元素大小 clientwidth clientHeight
  • scroll经常用于获取滚动距离scrollTop scrollLeft
  • 注意页面滚动的距离通过 window.pageXOffset 获得

4.2 mouseenter 和mouseover的区别

  • mouseover鼠标经过自身盒子会触发,经过子盒子还会触发。mouseenter只会经过自身盒子被触发。
  • 两种都是鼠标移动到元素上会被触发,但是mouseenter不会冒泡(mouseleave也不会冒泡),mouseover会冒泡

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/519893.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

可视化图表:柱坐标系与对应图表详解

一、柱坐标系及其构成 柱状坐标系是一种常见的可视化图表坐标系,用于显示柱状图(也称为条形图)的数据。它由两个相互垂直的轴组成,一个是水平轴(X轴),另一个是垂直轴(Y轴&#xff0…

Linux编程3.4 进程-进程标识

1、相关函数 #include<unistd.h> #include<sys/types.h> pid_t getpid(void); 获得当前进程ID uid_t getuid(void); 获得当前进程的实际用户ID uit_t geteuid(void); 获得当前进程的有效用户ID git_t getgid(void); 获得当前进程的用户组ID pit_t getppid(…

深入解析Java中的异常处理机制

摘要&#xff1a; 异常处理是Java编程中不可或缺的一部分&#xff0c;它允许我们以优雅的方式处理程序运行时可能出现的问题。本文将深入探讨Java中的异常处理机制&#xff0c;包括异常类的层次结构、声明异常和处理异常的方法。通过两个实际的代码案例&#xff0c;我们将详细…

Mac版2024 CleanMyMac X 4.14.6 核心功能详解以及永久下载和激活入口

CleanMyMac 是 macOS 上久负盛名的系统清理工具&#xff0c;2018 年&#xff0c;里程碑式版本 CleanMyMac X 正式发布。不仅仅是命名上的变化&#xff0c;焕然一新的 UI、流畅的动画也让它显得更加精致。新增的系统优化、软件更新等功能&#xff0c;使得在日常使用 macOS 时有了…

【问题解决】| 关于vscode调试python文件 报错 且直接运行正常的诡异情况记录

关于python的debug报错&#xff0c;其实很奇怪 首先&#xff0c;对于工作区代码&#xff0c;我们可以通过CtrlShiftP 来切换Python解释器 这样的话&#xff0c;工作区的代码就不会报import error 而且这样的话是可以运行跑通的&#xff0c;但最抽象的一集来了&#xff0c;这…

排序——堆排序

本节继续复习排序算法。这次复习排序算法中的堆排序。 堆排序属于选择排序。 目录 什么是堆&#xff1f; 堆排序 堆排序的思想 堆排代码 向下调整算法 堆排整体 什么是堆&#xff1f; 在复习堆排序之前&#xff0c; 首先我们需要回顾一下什么是堆 。 堆的本质其实是一个数…

Linux文件描述符剖析

文章目录 文件描述符文件描述符分配规则重定向软硬链接软链接&#xff08;Symbolic Link&#xff09;&#xff1a;硬链接&#xff08;Hard Link&#xff09;&#xff1a; 文件描述符 文件描述符&#xff08;File Descriptor&#xff09;是一个非负整数&#xff0c;用于标识打开…

智能控制:物联网智能插座对接文档

介绍 一开始买的某米的插座&#xff0c;但是好像接口不开放&#xff0c;所以找到了这个插座&#xff0c;然后自己开发了下&#xff0c;用接口控制插座开关。wifi的连接方式&#xff0c;通电后一般几秒后就会连接上wifi&#xff0c;这个时候通过接口发送命令给他。 产品图片 通…

C++11线程同步之条件变量

C11线程同步之条件变量 condition_variable成员函数生产者和消费者模型 condition_variable_any成员函数生产者和消费者模型 条件变量是C11提供的另外一种用于 等待的同步机制&#xff0c;它能阻塞一个或多个线程&#xff0c;直到收到另外一个线程发出的通知或者超时时&#x…

ROS 2基础概念#5:执行器(Executor)| ROS 2学习笔记

在ROS 2中&#xff0c;Executor是一个核心概念&#xff0c;负责管理节点&#xff08;Node&#xff09;中的回调函数&#xff0c;如订阅消息的回调、服务请求的回调、定时器回调等。Executor决定了何时以及如何执行这些回调&#xff0c;从而在ROS 2系统中实现异步编程。 ROS 2 …

vscode自定义插件的开发过程记录

前言 本文是关于visual studio code软件上自定义插件的开发记录&#xff0c;将从头记录本人开发的过程&#xff0c;虽然网上也有很多文章&#xff0c;但个人在实践的过程还是会遇到不一样的问题&#xff0c;所以记录下来&#xff0c;以便于后期参考。 前期准备&#xff1a; 1、…

STL之list容器代码详解

1 基础概念 功能&#xff1a; 将数据进行链式存储 链表&#xff08;list&#xff09;是一种物理存储单元上非连续的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接实现的 链表的组成&#xff1a;链表由一系列结点组成。 结点的组成&#xff1a;一个是存储数…