JavaScript 经典实例收集整理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript 经典实例收集整理相关的知识,希望对你有一定的参考价值。
跨浏览器事件
跨浏览器添加事件
跨浏览器移除事件
跨浏览器阻止默认行为
跨浏览器获取目标对象
跨浏览器获取滚动条位置
跨浏览器获取可视窗口大小
js 对象冒充
js 异步加载和同步加载
异步加载也叫非阻塞模式加载,浏览器在下载js
的同时,同时还会执行后续的页面处理。
在script
标签内,用js
创建一个script
元素并插入到document
中,这种就是异步加载js
文件了:
同步加载
平常默认用的都是同步加载。如:
同步模式又称阻塞模式,会阻止流览器的后续处理。停止了后续的文件的解析,执行,如图像的渲染。浏览器之所以会采用同步模式,是因为加载的js
文件中有对dom
的操作,重定向,输出document
等默认行为,所以同步才是最安全的。
通常会把要加载的js
放到body
结束标签之前,使得js
可在页面最后加载,尽量减少阻塞页面的渲染。这样可以先让页面显示出来。
同步加载流程是瀑布模型,异步加载流程是并发模型。
js获取屏幕坐标
注释:
1.documentElement
属性可返回文档的根节点。
2.scrollTop()
为滚动条向下移动的距离
3.document.documentElement.scrollTop
指的是滚动条的垂直坐标
4.document.documentElement.clientHeight
指的是浏览器可见区域高度
DTD已声明的情况下:
如果在页面中添加这行标记的话
IE
Firefox
Chrome
浏览器所有内容高度
即浏览器整个框架的高度,包括滚动条卷去部分+可视部分+底部隐藏部分的高度总和
浏览器滚动部分高度
即滚动条卷去部分高度即可视顶端距离整个对象顶端的高度。
综上
1、document.documentElement.scrollTop
和document.body.scrollTop
始终有一个为0,所以可以用这两个的和来求scrollTop
2、scrollHeight、clientHeight
在DTD
已声明的情况下用documentElement
,未声明的情况下用body
PageX和clientX
PageX:
鼠标在页面上的位置,从页面左上角开始,即是以页面为参考点,不随滑动条移动而变化
clientX:
鼠标在页面上可视区域的位置,从浏览器可视区域左上角开始,即是以浏览器滑动条此刻的滑动到的位置为参考点,随滑动条移动 而变化.
可是悲剧的是,PageX
只有FF特有,IE
则没有这个,所以在IE下使用这个:
PageY=clientY+scrollTop-clientTop;
(只讨论Y轴,X轴同理,下同)
scrollTop
代表的是被浏览器滑动条滚过的长度
offsetX:IE特有,鼠标相比较于触发事件的元素的位置,以元素盒子模型的内容区域的左上角为参考点,如果有
boder`,可能出现负值
只有clientX
和screenX
皆大欢喜是W3C标准.其他的,都纠结了.
最给力的是,chrome
和safari
一条龙通杀!完全支持所有属性
js拖拽效果
offsetTop
返回的是数字,而 style.top
返回的是字符串,除了数字外还带有单位:px
。
js获取图片原始大小尺寸
js循环遍历数组
遍历二维数组
阻止表单重复提交
有两种方法可以解决:一是提交之后,立刻禁用点击按钮;第二种就是提交之后取消后续的表单提交操作。
这种方式只能用于通过提交按钮防止重复提交,还可以使用如下方式:
字符串部分
在字符串中查找子字符串
Number和Math部分
数字可以是一个直接量,也可以是一个对象,但是Math对象不同,他没有构造函数,并且其所有的属性和方法都是直接通过这个对象来访问的
把十进制转化为一个十六进制值
js
中,十进制数字以0x
开头,八进制数字总是以0
开头
随进产生颜色
目前,所有浏览器都支持RGB
表示法和十六进制表示法,除了IE7
,它只支持十六进制表示法
在角度和弧度之间转换
数组部分
创建多维数组
排序数组
Array
对象的sort
方法会按照字母顺序来排序数组元素。对于数字,是按照字符编码的顺序进行排序
Date日期时间部分
js计算时间差
正则部分
js实现千分位分隔
js判断传入参数是否为质数
js判断字符串出现最多的字符,并统计次数
以上是关于JavaScript 经典实例收集整理的主要内容,如果未能解决你的问题,请参考以下文章
精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解