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

html-css015

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

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

|-5| = 5

这三个函数都是 数学函数

Math

比如说 console.log(Math.ceil(1.01)) 结果 是 2

console.log(Math.ceil(1.9))结果 2

console.log(Math.ceil(-1.3)) 结果 是 -1

比如说 console.log(Math.floor(1.01)) 结果 是 1

console.log(Math.floor(1.9)) 结果 1

console.log(Math.floor(-1.3)) 结果 是 -2

console.log(Math.round(1.01)) 结果 是 1

console.log(Math.round(1.9)) 结果 是 2

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

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

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

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

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

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

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

var w = width

box.style.w

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

我们想要获得css 的样式, box.style.left 和 box.style.backgorundColor

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

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

怎么办?

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

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

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

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

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

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

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

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

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

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

案例源码:

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

案例源码:

链接: http://pan.baidu.com/s/1miEvqoo

密码:7fv8

让适合的人走进你的生活吧,让旧梦逝去吧,让不合适的那个离开吧。人生,看轻看淡多少,痛苦就离开你多少。因为看轻,所以快乐!

使用关键字传参,如果参数名不是find系函数已定义的位置参数名,参数会被kwargs收集并被当做 标签的属性来搜索 (拥有ID属性的标签)。

属性的传参可以是字符串、正则表达式对象、True、列表。

class是Python关键字,所以使用 class_ 。class是多值属性,可以匹配其中任意一个,也可以完全匹配。

属性:attrs接收一个字典, 字典的key为属性名, value可以是字符串、正则表达式对象、True、列表

可以通过text参数 搜索文档中的字符串内容,接受字符串、正则表达式对象、True、列表

限制返回结果的数量

默认是递归搜索所有子孙节点,如果不需要请设置为False

find_all()是非常常用的方法,可以简化省略掉

find( name , attrs , recursive , text , **kwargs )

和JQuery一样,可以使用CSS选择器来查找节点

使用soup.select()方法,select方法支持大部分CSS选择器,返回列表。

CSS中,标签名直接使用,类名前加.点号,id名前加#井号。

搜索节点的目的往往是为了提取该节点的文本内容, 一般不需要HTML标记, 只需要文字

拿到一个Json字符串,如果想提取其中的部分内容,就需要遍历了。在遍历过程中进行判断。

还有一种方式,类似于XPath,叫做JsonPath。

下表中列出了对应了JSONPath以及对应的XPath用法

依然用豆瓣电影的热门电影的Json, 找到得分高于8分的

https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&page_limit=50&page_start=0

异步请求的数据在XHR中,request请求的html不一定有我们想要的数据;

常用:

链接组件:<navigator url="detail?id=5" open-type="跳转方式" >详情页</navigator>

页面跳转js:

uni.navigateTo({

url: 'test?id=1&name=uniapp'

})

网络请求js:

复制代码

const requestTask = uni.request({

url: 'https://www.abc.com/getUser',

data: { id: 5 },

method: 'POST',

success: function(res) {

console.log(res.data)

}

})

复制代码

页面设置标题:

<page-meta>

<navigation-bar :title="title"></navigation-bar>

</page-meta>

提示都支持模糊匹配)

使用转到定义到js函数:'Ctrl+Alt+D' ↓