前端基本功:JS(十一)动画封装(CSS样式获取、JSON遍历)

前端基本功:JS(十一)动画封装(CSS样式获取、JSON遍历),第1张

盒子 原来的位置 0 + 10 盒子现在的offsetLeft 10

|-5| = 5

这三个函数都是 数学函数

Math

比如说 consolelog(Mathceil(101)) 结果 是 2

consolelog(Mathceil(19)) 结果 2

consolelog(Mathceil(-13)) 结果 是 -1

比如说 consolelog(Mathfloor(101)) 结果 是 1

consolelog(Mathfloor(19)) 结果 1

consolelog(Mathfloor(-13)) 结果 是 -2

consolelog(Mathround(101)) 结果 是 1

consolelog(Mathround(19)) 结果 是 2

匀速动画的原理: 盒子本身的位置 + 步长

缓动动画的原理: 盒子本身的位置 + 步长 (不断变化的)

( 缺陷:只能水平方向!随后的“封装运动框架单个属性会进一步改进” )

我们访问得到css 属性,比较常用的有两种:

点语法可以得到 width 属性 和 top属性 带有单位的 。 100px

但是这个语法有非常大的 缺陷, 不变的。

后面的width 和 top 没有办法传递参数的。

var w = width;

boxstylew

最大的优点 : 可以给属性传递参数

我们想要获得css 的样式, boxstyleleft 和 boxstylebackgorundColor

但是它只能得到 行内的样式。

但是我们工作最多用的是 内嵌式 或者 外链式 。

怎么办?

核心: 我们怎么才能得到内嵌或者外链的样式呢?

外部(使用<link>)和内嵌(使用<style>)样式表中的样式(ie和opera)

两个选项是必须的, 没有伪类 用 null 替代

我们这个元素里面的属性很多, left top width ===

我们想要某个属性, 就应该 返回该属性,所有继续封装 返回当前样式的 函数。

千万要记得 每个 的意思 : 那是相当重要

flag在js中一般作为开关,进行判断。

等动画执行完毕再去执行的函数 回调函数

我们怎么知道动画就执行完毕了呢?

很简单 当定时器停止了。 动画就结束了

案例源码:

in运算符也是一个二元运算符,但是对运算符左右两个 *** 作数的要求比较严格。in运算符要求第1个(左边的) *** 作数必须是字符串类型或可以转换为字符串类型的其他类型,而第2个(右边的) *** 作数必须是数组或对象。只有第1个 *** 作数的值是第2个 *** 作数的属性名,才会返回true,否则返回false

案例源码:

链接: > 密码:7fv8

请参照 css3 伪类选择器

:first-child

选择某个元素的第一个子元素(IE6不支持)

:last-child

选择某个元素的最后一个子元素

:first-of-type

[CSS3]选择一个上级元素下的第一个同类子元素

:last-of-type

[CSS3]选择一个上级元素的最后一个同类子元素

:only-child

[CSS3]选择的元素是它的父元素的唯一一个了元素(IE6-8不支持)

:only-of-type

[CSS3]选择一个元素是它的上级元素的唯一一个相同类型的子元素(IE6-8不支持)

:nth-child()

[CSS3]选择某个元素的一个或多个特定的子元素(IE6-8不支持)

:nth-last-child()

[CSS3]选择某个元素的一个或多个特定的子元素,从这个元素的最后一个子元素开始算(IE6-8不支持)

:nth-of-type()

[CSS3]选择指定的元素(IE6-8不支持)

:nth-last-of-type()

[CSS3]选择指定的元素,从元素的最后一个开始计算(IE6-8不支持)

CSS中常用的选择器:

(一)基本选择器(二)层次选择器(三)动态伪类选择器(四)目标伪类选择器

(五)ui状态伪类选择器(六)结构伪类选择器(七)属性选择器(八)伪元素

(一)基本选择器

1标签选择器:通过标签名获取元素 权重:0001

(此种选择器影响范围大,建议尽量应用在层级选择器中。)

2class选择器:通过 类名获取元素 权重:0010

(通过class类名来选择元素,一个类可应用于多个元素,一个元素上也可以使用多个类,应用灵活,可复用,是css中应用最多的一种选择器。)

3id选择器:通过 # id名获取元素 权重:0100

(通过id名来选择元素,元素的id名称不能重复,所以一个样式设置项只能对应于页面上一个元素,不能复用,id名一般给程序使用,所以不推荐使用id作为选择器。 )

4 通配符选择器:获取到页面的所有元素

5群组选择器:用逗号隔开基本选择器,表示这些选择器都获取到

(二)层次/关系选择器

(主要应用在选择父元素下的子元素,或者子元素下面的子元素,可与标签元素结合使用,减少命名,同时也可以通过层级,防止命名冲突。)

1包含选择器:用空格隔开基本选择器,表示后一个选择器是前面的后代

例:p a { color:red; }

2子代选择器:用>隔开基本选择器,表示后一个选择器是前面的子代

例:ul>li { line-style: none; }

3相邻兄弟选择器:E+F:表示获取到E后面的紧跟着的F元素(同级的)

例: a+a { }

4兄弟选择器:E~F:表示获取到E后面所有的同级的F元素

例: li~li { }

(三)动态伪类选择器

1 a:link 锚链接被访问前添加样式

2 a:visited 锚链接被访问后添加样式

3 e:hover 鼠标悬停在元素上添加样式

4 e:active 鼠标点击元素时添加样式

5 :focus 表单元素被聚焦时,添加样式

(四)目标伪类选择器

语法: 目标:target {属性:属性值} 被选中的目标添加样式

目标:target E子元素{属性:属性值} 被选中的目标里的E子元素添加样式

(五)ui状态伪类选择器

1 :enabled 可用的表单元素添加样式

2 :disabled 不可用的表单元素添加样式(disabled )

3 :checked+E 被选中的表单元素添加样式

(六)结构伪类选择器

1 E:first-child 获取到E元素,且要满足为其父元素的第一个孩子。

2 E:last-child 获取到E元素,且要满足为其父元素的最后一个孩子

3 E:nth-child(n) 获取到E元素,且要满足为其父元素的第n个孩子

n的用法:

(1)6n倍数 (2)even偶数/2n odd奇数/2n-1(如可用来选中奇偶行来实现 “隔行换色”)

(3) -n+5 选中1-5

(4)p:nth-child(-n+3):nth-child(n+2) 2-3个

4 E:nth-last-child(n) 获取到E元素,且要满足为其父元素的倒数第n个孩子

5 E:first-of-type 获取到E元素,且要满足为其父元素的第一个该类型的孩子

6 E:last-of-type 获取到E元素,且要满足为其父元素的最后一个该类型的孩子

7 E:nth-of-type(n) 获取到E元素,且要满足为其父元素的第n个该类型的孩子

8 E:nth-last-of-type(n)获取到E元素,且要满足为其父元素的倒数第n个该类型的孩子

9 E:empty 获取到空的E元素(注:连空格都不能有)

(七)属性选择器

1 E[attr] 拥0有attr属性的E元素添加样式 如div[class];

2 E[attr="val"] 拥有attr属性值 为 val的E元素添加样式 如p[class="ab"]

3 E[attr="val"] attr属性值 包含 val的E元素添加样式

如ul[class="c"] 指class类名中包含有c字母的E元素

4 E[attr^="val"] attr属性值以val 开头 的E元素添加样式

5 E[attr$="val"] attr属性值以val 结尾 的E元素添加样式

(八)伪元素

1 E::before给E元素添加第一个子元素 (前面)

2 E::after 给E元素添加最后一个子元素(后面)

3 E::first-letter给E元素第一个字添加样式

4 E::first-line给E元素第一行添加样式

5 E::selection 元素内容被选中时添加样式(火狐需要加前缀-moz-)

原生JS来 *** 作比较麻烦,每个浏览器 *** 作方法都不一样,如果是写在style属性里的CSS,可以这么 *** 作:

objstyletransform

如果是写在css里就要判断浏览器了,比较麻烦,推荐你用jQ吧,一句搞定:

objcss("transform")

css的focus伪类是选择拥有焦点的元素并匹配样式,也就是说它不是一种动作(让元素获得焦点),而是根据元素的状态(是否有焦点)来选择样式。

它们是可以一块用的,但并不是你想象的那样:

xxx:hover:focus {color:red}

这个的意思就是如果xxx拥有焦点则鼠标经过时使其文字颜色变为红色。

要想实现你要的功能,必须用js才能实现:

xxxonmouseover=function(){

thisfocus();

}

您好,使用原生js获取

一、getComputedStyle是一个可以获取当前元素所有最终使用的CSS属性值,

返回的是一个CSS样式声明对象 , 只读, 此方法支持Firefox浏览器;

语法:var style=windowgetComputedStyle(“元素”,“伪类”);第一个参数是必须的,第二个为可选的。

二、currentStyle 是一款可以兼容IE浏览器的属性返回的是当前所有最终使用的CSS属性值,

利用elementCurrentStyleattribute可获取

其与getComputedStyle区别:1、 currentStyle不支持伪类样式获取;

2、currentStyle不支持现代浏览器,支持IE

原生JS中如何获取CSS属性中的值

这个选择器的伪类的字体应该是:font-family: FontAwesome;并且应该是4X版的,图标字体;可以去官网:fontawesome点io查看。

CSS伪类是用来添加一些选择器的特殊效果。

解释:在感觉上伪类可以是动态的,当用户和文档进行交互的时候一个元素可以获取或者失去一个伪类。例外的是":first-child"能通过文档树推断出来,":lang"在一些情况下也在从文档树中推断出来。

由此可以看出,它的功能和class有些类似,但它是基于文档之外的抽象,所以叫伪类。

扩展资料

伪类有::first-child ,:link:,vistited,:hover:,:active,:focus,:lang,:right,:left,:first

CSS很多的建议并没有得到浏览器的支持,但有四个可以安全用在超链接上的伪类。

:link用在未访问的连接上。

:visited用在已经访问过的连接上。

:active用于获得焦点(比如,被点击)的连接上。

:hover 用于鼠标光标置于其上的连接。

尽管CSS给予绕开的控制权,用不同的颜色表示已经访问过的连接是一个很好的习惯,因为很多用户还是这样预期的。伪类(除了hover)不常用,恐怕也没有过去常用。因此,它没有过去那样有用了。但如果能收集常用用户的意见,你会发现应该使用它。

传统上,连接文本是蓝色的,已访问的连接是紫色的。也许,这是最有效、最有用的颜色。然而,伴随着CSS的广泛发展,这种颜色不会是平常的了,用户也不再假设连接必须是蓝色或紫色的。

参考资料来源:百度百科-伪类

css选择器有,标签名选择器,类选择器,ID选择器,后代选择器,群组选择器。

新建文件创建标记选择器。

效果。

创建类别选择器。

创建ID选择器。

效果。

附上源码。

以上就是关于前端基本功:JS(十一)动画封装(CSS样式获取、JSON遍历)全部的内容,包括:前端基本功:JS(十一)动画封装(CSS样式获取、JSON遍历)、css中如何获取dom元素、css有哪些选择器等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9392566.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存