1.动画
(1)Css样式提供了运动
过渡属性transition 从一种情况到另一种情况叫过渡
transition:time linear delay;
attr 是变化的属性
time 是花费的时间
linear 变化的速度
delay 是延迟
复习background:url() no-repeat 50% 50% red;
background-image
background-repeat
background-position
background-color
(2)js提供的运动
元素的client offset scroll 三个系列
clientWidth/clientHeight/clientTop/clientLeft
offsetWidth/offsetHeight/offsetLeft/offsetTop/offsetParent
scrollWidth/scrollHeight/scrollTop/scrolleft
这十三个属性,前面十一个是只读属性,scrollTop和scrollLeft是既可读也可写
获取浏览器的body属性是有兼容的
var dd=document.body||document.documentElement
scrollTop和scrollLeft的最小值是0
获取body的整个文档的高
document.body.scrollHeight||doocument.documentElement.scrollHeight
获取浏览器body的整个文档的高、
document.body.scrollHeight||documentElement.scrollHeight
window下的两个事件
onscroll当滚动条滚动的时候触发
onresize当窗口发生改变的时候触发
====================================================================================================================================================
BOM 浏览器对象模型
1.window.open(url,ways)
url是打开的网页地址
ways打开的方式_self
2.window.close()
3. 浏览器用户信息
window.navigator
4.浏览器地址信息
window.location
5.window.history 记录浏览器的访问历史记录
window.history.forward()前进 最新的访问记录
window.history.back() 返回
函数的解析
函数如果把他当做函数看,就只能看到函数的意思,可以封装。
如果说我们把函数当作函数对象来看,就可以实现一些继承了。
可以控制台dir(fn)
可以发现在原型链上函数对象天生带call(),apply(),bind()三个方法。
这三个方法可以改变函数内的提升指向
A.Call(B,c,d)。 B取代了A中的this。然后把B给调用了
function add(a,b){
console.log(this)
return a+b
}
function jian(a,b){
return a-b
}
// add(5,3)
var s=add.call(jian,5,6)
console.log(s)
jian取代了add中this,然后把add给调用了
call和apply的区别
案例分析
Math.max(34,45,6,12)找出这些数字中的最大项,但是参数必须是数字。
现在我们有个 arr=[24,25,56,5]想通过math 找到里面的最大项
var s=Math.max.apply(null,arr)
91
复习:
函数内的this,一种是被当作方法来调用,this指向.前面的对象
一种是当做函数来调用,看函数归属谁,归属谁this指向谁