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会冒泡

相关推荐

  1. web学习笔记

    2024-03-12 00:16:01       55 阅读
  2. web学习笔记

    2024-03-12 00:16:01       46 阅读
  3. web学习笔记(三

    2024-03-12 00:16:01       44 阅读
  4. web学习笔记(四

    2024-03-12 00:16:01       41 阅读
  5. web学习笔记(八)uniapp

    2024-03-12 00:16:01       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-12 00:16:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-12 00:16:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-12 00:16:01       82 阅读
  4. Python语言-面向对象

    2024-03-12 00:16:01       91 阅读

热门阅读

  1. Vue教学16:探索Element UI,开启Vue项目创建之旅

    2024-03-12 00:16:01       38 阅读
  2. 第6章---GameplayTag初识以及拾起物品UI制作

    2024-03-12 00:16:01       36 阅读
  3. hdu 2079 选课时间

    2024-03-12 00:16:01       38 阅读
  4. openssl3.2 - exp - AES-256-GCM

    2024-03-12 00:16:01       28 阅读
  5. OpenSSL 安全漏洞(CVE-2023-3817)

    2024-03-12 00:16:01       46 阅读
  6. 安卓文件管理器

    2024-03-12 00:16:01       42 阅读
  7. Golang 方法的接收器 receiver 指针和值的区别

    2024-03-12 00:16:01       37 阅读
  8. vue知识点杂记

    2024-03-12 00:16:01       40 阅读
  9. 【美团20240309笔试算法题】小美的数组询问

    2024-03-12 00:16:01       43 阅读
  10. 【设计模式】工厂模式与抽象工厂模式

    2024-03-12 00:16:01       42 阅读