JS学习笔记13-操作内联样式

一、通过JS修改元素的样式

  1. 语法: 元素.style.样式名=样式值(字符串)。
box.style.width="300px";
  1. 注意:如果css样式名中含有-,这种名称在JS中的不合法的,比如background-color,需要将这种样式名修改为驼峰命名法。
box.style.backgroundColor="yellow";
  1. 通过style属性设置的样式都是内联样式,而内联样式有较高的优先级,所以通过JS修改的样式往往会立即显示,但是如果在样式中写了!important,则此时样式会有最高的优先级,所以即使通过JS也不能覆盖样式,此时会导致JS修改样式失效,所以尽量不要为样式添加!important。

二、读取元素的样式

  1. 语法:元素.style.样式名
alert(box.style.width);
  1. 通过style属性设置和读取的都是内联样式,无法读取样式表中的样式。

  2. 读取元素表中的样式
    语法: 元素.currentStyle.样式名
    它可以用来读取当前元素正在显示的样式
    currentStyle只有IE浏览器支持
    在其他浏览器可以使用getComputedStyle()这个方法来获取元素当前的样式,这个方法是window的方法,可以直接使用

  3. getComputedStyle()
    需要两个元素:
    ①要获取样式的元素
    ②可以传递一个伪元素,一般都传null
    该方法会返回一个对象,对象中封装了当前元素对应的样式
    所以需要调用这个对象去获取其中的某一样式
    在这里插入图片描述
    如果获取的样式没有设置,则会获取到真实的值,而不是默认值
    比如:没有设置width,而不会获取到aotu,而是会返回一个真实的值。
    但是该方法不支持IE8及以下浏览器。

通过currentStyle和getComputedStyle()读取到的样式都是只读的,不能修改,如果要修改必须通过style属性。

  1. 定义一个函数,用来获取指定元素的当前样式
    参数:
    ①obj 要获取的样式的元素
    ②name 要获取的样式名
    在这里插入图片描述

二、其他样式的属性

1.clientWidth clientHeight

这两个属性可以获取元素的可见宽度和高度。
这些属性都是不带px的,返回都是一个数字,可以直接进行计算
会获取元素的宽度和高度,包括内容区和内边距。
这些属性都是只读的,但是不能改。

2.offsetWidth offsetHeight

获取元素的整个宽度和高度,包括内容区、内边距和边框

3.offsetParent

可以用来获取当前元素的定位父元素
会获取当离当前元素最近的开启了定位的祖先元素
如果所有的祖先元素都没有开启定位,则返回body。

4.offsetLeft offsetTop

offsetLeft:当前元素相当于其定位父元素的水平偏移量
offsetTop:当前元素相当于其定位父元素的垂直偏移量

5.scrollWidth scrollHeight scrollLeft scrollTop

overflow:auto;
scrollWidth scrollHeight :可以获取元素整个滚动区域的高度或宽度
scrollLeft scrollTop:可以获取水平或垂直滚动条滚动的距离

当满足scrollHeight -scrollTop==clientHeight,就说明垂直滚动到底了。
当满足scrollWidth - scrollLeft ==clientWidth,就说明水平滚动到底了。

三、用户注册协议练习

在这里插入图片描述

扫描二维码关注公众号,回复: 12579166 查看本文章

1.onscroll该事件会在元素滚动时触发

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45636381/article/details/113275955