2017-12-27js动画

知识点:

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. 用法

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,693评论 1 92
  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 7,767评论 0 8
  • 从埃弗顿转会到曼联不需要“考虑两次”,因为这代表着“完美的机会”。——卢卡库 这名24岁的前锋使曼联签下7500万...
    乌卓阅读 1,661评论 4 4
  • 有网友晒出一张baby和她母亲本人年轻时的照片来做对比,并赞叹道,简直就是复制加黏贴呀,照片中baby将眼镜戴在头...
    暖心汤阅读 2,701评论 0 0
  • 这是一个心机婊,女神,和男神的故事 1. 其实心机婊原来一点都不心机的。 至少在她刚进入这所学校的时候,还是一朵纯...
    熊信婷阅读 4,093评论 0 0

友情链接更多精彩内容