知识点:
1. 写定时器setInterval函数第一条要清除定时器,否则会多次触发定时器
2. 写动画前要清楚浏览器默认样式*{margin:0;padding:0} 否则px会跳跃
3. 注意避免硬编码即在函数的判断之中直接使用具体的值如10,20等,应该把这些变化的值作为参数传入函数内部,即美观也方便后来的修改。
4. 代码相同的部分需要封装,可以利用两个不同的参数进行区分
5. offset() 方法返回或设置匹配元素相对于文档的偏移(位置)。该方法返回的对象包含两个整型属性:top 和 left,以像素计。此方法只对可见元素有效。
scrollWidth:对象的实际内容的宽度,不包边线宽度,会随对象中内容超过可视区后而变大。
clientWidth:对象内容的可视区的宽度,不包滚动条等边线,会随对象显示大小的变化而改变。
clientWidth = width + padding
offsetWidth:对象整体的实际宽度,包滚动条等边线,会随对象显示大小的变化而改变。
offsetWidth = width + padding + border=clientWidth+border
offsetleft:此属性可以返回当前元素距离某个父辈元素左边缘的距离,当然这个父辈元素也是有讲究的。
(1).如果父辈元素中有定位的元素,那么就返回距离当前元素最近的定位元素边缘的距离。
(2).如果父辈元素中没有定位元素,那么就返回相对于body左边缘距离。
语法结构:
obj.offsetleft
特别说明:此属性是只读的,不能够赋值。
offsetLeft和style.left的区别:
1.offsetWidth属性可以返回对象的padding+border+width属性值之和,style.width返回值就是定义的width属性值。
2.offsetWidth属性仅是可读属性,而style.width是可读写的。
3.offsetWidth属性返回值是整数,而style.width的返回值是字符串(包括“px”)。
4.style.width仅能返回以style方式定义的内部样式表的width属性值。
6. 计时器setInterval()
在执行时,从载入页面后每隔指定的时间执行代码。
语法:
setInterval(代码,交互时间);
参数说明:
1. 代码:要调用的函数或要执行的代码串。
2. 交互时间:周期性执行或调用表达式之间的时间间隔,以毫秒计(1s=1000ms)。
返回值:
一个可以传递给 clearInterval() 从而取消对"代码"的周期性执行的值。
self.setInterval的意思是只在当前页面执行的意思
clearInterval() 方法可取消由 setInterval() 设置的交互时间。
语法:
clearInterval(id_of_setInterval)
参数说明:
id_of_setInterval:由 setInterval() 返回的 ID 值。
setTimeout()计时器,在载入后延迟指定时间后,去执行一次表达式,仅执行一次。
语法:
setTimeout(代码,延迟时间);
提示:setTimeout() 只执行 code 一次。如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout()。
7. 若要移动块级元素,使之一部分或完全溢出父级元素,可使用相对定位
8. onmouseover写法(必须函数):object.onmouseover=function(){SomeJavaScriptCode};
9. 将获取元素放在window.onload外,会导致找不到对象
第一,把js文件放在底部加载;第二,使用window.onload=function(){}包裹js内容。
10. 不透明度
img{
opacity:0.4;
filter:alpha(opacity=40); /* 针对 IE8 以及更早的版本 */}
IE9, Firefox, Chrome, Opera 和 Safari 使用属性 opacity 来设定不透明度。opacity 属性能够设置的值从 0.0 到 1.0。值越小,越透明。
IE8 以及更早的版本使用滤镜 filter:alpha(opacity=x)。x 能够取的值从 0 到 100。值越小,越透明。
11. javascript的计算能力不强,用小数的方式来做数学运算容易得出错误结果,建议需要运算的代码尽量避开小数。
12. Math.ceil()向上取整
13. 多物体动画不能用公用计时器、公用元素,需定义在每个obj中,obj.timer ,obj.alpha,aLi[i].timer=null
,clearInterval(aLi[i].timer
14. 获取样式
js只能获取到行内样式,而无法获取到内部样式或外部样式。
obj.style.xxxx获取的是行内样式。
获取内部或外部样式的方法:currentStyle 针对IE浏览器;getComputedStyle 针对firefox浏览器。
a. 封装好的函数
b. 用法