Javascript 基础
01-ECMAScript5基础语法:
ECMAScript是一种标准,不是一门语言
1.var 声明变量
2.测试语句:
1.console.log(变量名)
2.alert(变量)
3.数据类型
1.基础数据类型
1.number:
2.string:
3.boolean:
4:null
5.undefined:
2.引用数据类型
1.Function:
2.Object:
3.Array:
4.Date:
4.运算符
1.赋值运算符
2.算术运算符
3.比较运算符
5.数据类型转换
1.将数值类型转换为字符串类型
6.流程控制
1.if-else
2.&& ||
3.swith
4.while
5.do-while
6.for
7.常用内置对象
1.Array
2.String
3.Date
4.Math内置对象
5.Function函数
02 初识js
1.js内置函数:
typeof a #获取变量的类型
2.数值型:number
在JavaScript中,只要是数,就是数值型(number)的。无论整浮、浮点数(即小数)、无论大小、无论正负,都是number类型的。
3.字符串型:string
如果加号两边都是数值,此时是加。否则,就是连字符(用来连接字符串)。
当字符串与数字用+连接时,这里+是连字符的作用,会把数字隐式转换为字符串,然后进行拼接。
当字符串与数字用-连接时,这里-是进行数学运算,会把字符串隐式转换为数字。
example:
var a = '3';
var b = 2;
var c = a + b; //32 string
var d = a - b; //1 number
4.变量类型转换
parseInt():字符串转数字
example:
parseInt('123') //123 number
5.parseInt特性
1.当字符串中包含非数字字符时,转换后的数据为只保留字符串最开头的数字,后面的非数字截断移除。
exapmle:
parseInt('2018helloworld') //2018 number
2.得到的结果如果是小数则只取整,非四舍五入。
example:
parsetInt('3.1415926') //3 number
03 数据类型
1.基本数据类型
1.number:
var a = 123;
console.log(typeof a)
var a1 = 5/0
console.log(typeof a1) //Infinity 无限大,number类型
2.string
3.boolean
4.null. //空
var c1 = null;
console.log(c1)
5.undefined //未定义类型
var d1;
console.log(typeof d1)
04 运算符
1.算术运算符:
++a 和a++的区别:
a++是先赋值后++运算,
++a是先运算后赋值
example:
var a = 10: var b = a++; var c = ++a; console.log(a); //11 console.log(b); //10 console.log(c); //11
2.比较运算符:
== 和 ===的区别:
==比较值是否相等
===比较值和类型是否相等
example:
var a = '1'; var b = 1; console.log(a==b) //true console.log(a===b) //false
05 数据类型转换
1.隐式转换
example:
var a = '123'; var b = 456; var c = a+b; //'123456' string
2.强制类型转换
1.将数字转换为字符串:
example:
var n1 = 123; var s1 = String(n1); //'123' string var num = 234; var str1 = num.toString(); //'234' string
2.将字符串类型转换为数值类型
example:
var stringNum = '3.1415923hahah' var num = Number(stringNum); console.log(num2) console.log(parseInt(stringNum)) console.log(parseFloat(stringNum))
3.任何类型都可以转换为boolean
非0 非空 非未定义都为真
06-流程控制
1. if,if-else,if-else if-else
example:
var ji = 20; if(ji >= 20){ console.log('吃鸡啦') }else if(ji>=10 && ji <= 20){ console.log('离鸡只剩1cm') }else{ console.log('逗比') }
语法格式:
if(expression){ pass }else if(expression){ pass }else{ pass }
2.逻辑与&&逻辑或||
example:
var sum = 399; var math = 80; if (sum > 450 && math > 90) { console.log('清华大学录取成功') } else if (sum > 400 || math >= 95) { console.log('复旦大学录取成功') } else { alert('高考失利') }
3.switch
example:
var gameSocre = 'better'; switch (gameSocre) { case 'good': console.log('玩得很好'); break; case 'better': console.log('玩得老牛逼了'); break; default: console.log('菜鸡');
4.while循环
example:
var i=1; while(i<10){ console.log(i); i++; }
example:
#1-100内的偶数 var i = 1; while (i <= 100) { if (i % 2 == 0) { console.log(i); } i++ }
5.do_while
example:
var i = 3; do{ console.log(i) i++; }while(i<10)
6.for循环
example1:
for(var i = 1; i<=10;i++){ if(i%2==0){ console.log(i) } }
example2:
for (var i = 0; i <= 100; i++) { if (i % 2 == 0) { console.log(i); } }
example3:
var sum=0; for (var i =1;i<=100;i++){ sum+=i; } console.log(sum);
example4:
for (var i=1;i<=3;i++){ for(var j=0;j<=6;j++){ document.write('*') } document.write('<br>') }
example5:
#:直角三角型 for (var i=1;i<=6;i++){ for(var j=1;j<=i;j++){ document.write('*'); } document.write('<br>') }
example6:
#:等腰三角形 var num =7; for (var i=1;i<=num;i++){ for(var n=0;n<=num-i;n++){ document.write(' ') } for(var j=1;j<i*2;j++){ document.write('*') } document.write('<br>') }
07-常用内置对象
1.数组
创建一个数组
var colors = ['red', 'yellow', 'black']
var colors = new Array()
2.数组赋值(通过索引赋值)
var arr = [];
arr[0] = 123;
arr[1] = '哈哈哈';
arr[2] = '嘿嘿嘿';
3.数组常用方法:
1.concat() 把几个数组合并,返回新的数组
example:
var color = ['red', 'yellow']; var color2 = ['black', 'pink', 'deep blue']; var new_color = color.concat(color2); console.log(new_color); //['red', 'yellow','black', 'pink', 'deep blue']
2.join() 拼接一个数组中的所有元素。
example:
var color = ['red', 'yellow']; var color2 = ['black', 'pink', 'deep blue']; var str1 = color.concat(color2).join('|'); console.log(str1)//red|yellow|black|pink|deep blue
3.pop() 移除数组的最后一个元素,并返回这个移除的值
example:
var color2 = ['black', 'pink', 'deep blue']; el = color2.pop(); console.log(el); //deep blue console.log(color2); //['black', 'pink']
4.shift() 移除数组的第一个元素,并返回这个移除的值
example:
var color2 = ['black', 'pink', 'deep blue']; el = color2.shift(); console.log(el); //black console.log(color2);//{'pink', 'deep blue']
5.unshift() 在数组的0位置插入一个元素,返回新的数组长度
example:
var color2 = ['black', 'pink', 'deep blue']; new_length = color2.unshift('hot pink'); console.log(color2); //{['hot pink','black','pink', 'deep blue'] console.log(new_length); // 4
6.slice[start,end) 字符串切片
example:
var color = ['red', 'yellow']; var color2 = ['black', 'pink', 'deep blue']; color2.unshift('hot pink'); color3 = color2.slice(1,3); console.log(color3);
7.push() 往数组的最后一行添加一个元素,并返回新长度
example:
var color2 = ['black', 'pink', 'deep blue']; var new_length = color2.push('hot pink'); console.log(color2); //["black", "pink", "deep blue", "hot pink"] console.log(new_length); //4
8.sort() 对数组进行排序(字母根据首字母a-z排序,数字按从小到大排序)
example:
var color = ['red', 'yellow']; var color2 = ['black', 'pink', 'deep blue']; var new_length = color2.push('hot pink'); console.log(color2.sort()); //["black", "deep blue", "hot pink", "pink"]
9.reverse() 对数组进行反转
example:
var color = ['red', 'yellow']; var color2 = ['black', 'pink', 'deep blue']; console.log(color2.reverse()) //["deep blue", "pink", "black"]
10.length 属性值,获取数组的长度
example:
var color2 = ['black', 'pink', 'deep blue']; console.log(color2.length); //3
11.toString() 将数组转换为字符串
example:
var color2 = ['black', 'pink', 'deep blue']; var str = color2.toString(); console.log(str); //black,pink,deep blue
12.Arrary.isArray(obj) 判断对象是否是数组
example:
var color2 = ['black', 'pink', 'deep blue']; console.log(Array.isArray(color2)); //true
13.toFixed(2) 四舍五入保留两位小数
example:
var num = 1234.1274; var new_num = num.toFixed(2); console.log(new_num); //1234.13
14.清空数组:
array = [];
4.字符串String,常用方法
1.charAt() 返回指定索引位置的字符
example:
var str = 'china'; var charset = str.charAt(2); console.log(charset); //i
2.concat() 返回字符串值,表示两个或多个字符串的拼接
example:
var str = 'China'; var str2 = 'America'; var str3 = str.concat(str2); console.log(str3); //ChinaAmerica
3.match() 返回正则表达式模式对字符串进行查找的结果
example:
4.replace(a,b) 替换指定字符串,只会替换一次。
example:
var str = 'China'; var str2 = 'America'; var str3 = str.concat(str2); var str4 = str3.replace('a','A'); console.log(str4); //ChinaAmerica
5.search(stringObject)
example:
6.slice[start,end) 字符串切片
example:
var str = 'China'; var str2 = 'America'; var str3 = str.concat(str2); var str4 = str3.slice(1,3); console.log(str4); //hi
7.split('a', 1) 以'a'切割字符串,第二个参数切割后返回的元素个数
example:
var str = 'China'; var str2 = 'America'; var str3 = str.concat(str2); var str4 = str3.split('a',1); var str5 = str3.split('a',2); console.log(str4); //["chin"] console.log(str5); //["Chin", "Americ"]
8.substr[start,end) 字符串切片
example:
var str = 'China'; var str2 = 'America'; var str3 = str.concat(str2); var str4 = str3.substr(1,3); var str5 = str3.slice(1,3); console.log(str4); //hin console.log(str5); //hi
9.toUpperCase() 返回字符串中字母全部是大写的新字符串
example:
var str = 'China'; var str2 = 'America'; var str3 = str.concat(str2); var str4 = str3.toUpperCase(); console.log(str4); //CHINAAMERICA
10.toLowerCase() 返回字符串中字母全部是小写的新字符串
example:
var str = 'China'; var str2 = 'America'; var str3 = str.concat(str2); var str4 = str3.toLowerCase(); console.log(str4); //chinaamerica
11.将number类型转换成字符串类型
example:
var num = 1234.1234; var str = num.toString(); console.log(str);
5.Date 日期对象
创建日期对象只有构造函数一种方式,使用new关键字
example:
var myDate = new Date();
常用语法:
1.Date() 根据本地时间返回当天的日期和时间
example:
console.log(Date());//Thu Sep 27 2018 10:07:43 GMT+0800 (中国标准时间)
2.getDate() 根据本地时间返回指定日期对象的月份中的第几天(1-31)
example:
console.log(myDate.getDate());//27
3.getMonth() 根据本地时间返回指定日期对应的月份(0-11)
#注意月份0表示一月,往后类推
example:
console.log(myDate.getMonth());//9(10月)
4.getFullYear()根据本地时间返回指定日期对象的年份(四位数年份时返回四位数字)
example:
console.log(getFullYear());//2018
5.getDay() 根据本地时间返回指定日期对象的星期中的第几天(0-6)
#0代表星期日,
example:
console.log(getDay());//4(星期四)
6.getHours() 根据本地时间返回指定日期对象的小时(0-23)
example:
console.log(myDate.getHours())//14(下午两点)
7.getMinutes() 根据本地时间返回指定日期对象的分钟(0-59)
example:
console.log(myDate.getMinutes())//8
8.getSeconds() 根据本地时间返回指定日期对象的秒数(0-59)
example:
console.log(myDate.getSeconds())//24
9.toLocalString() 返回本地时间
example:
console.log(myDate.toLocalString())
#使用循环定时器在页面中显示动态时间
example:
setInterval(function () { document.getElementById('timer').innerText = Date().toLocaleString(); }, 1000)
6.Math 内置对象
#常用内置对象
1.Math.floor() 向下取整,地板函数
example:
var x = 1.789; var new_x = Math.floor(x); console.log(new_x)//1
2.Math.ceil() 向上取整,天花板函数
example:
var x = 1.789; var new_x = Math.ceil(x); console.log(new_x)//2
3.Math.max() 取多个数值中的最大值
example:
console.log(Math.max(3,2,1,4,5,2))//5
4.Math.min() 取两个数的最小值
example:
console.log(Math.min(3,2,1,4,5,2))//1
5.Math.random() 获取0-1之间的随机数
example:
console.log(Math.random())//0.669789427291309
#获取100-300之间的随机整数
min - max之间的随机数: min+Math.random()*(max-min)
example2:
var start = 100; var end = 300; var num = start+Math.random()*(end-start); console.log(Math.floor(num))
08-函数
1.函数的定义
example:
function f(){
};
2.函数的调用方式
example:
f();
3.形参和实参
example:形参(函数定义时)
function f(arg1,arg2){
console.log(arg1+arg2);
};
example:实参(函数调用时)
f(100,200);
4.返回值
example:
function f(arg1,arg2){
return arg1+arg2;
};
09-伪数组-arguments
1.arguments代表的是实参,arguments只在函数中使用。
example:
function f(a, b, c) {
console.log(arguments); //实参组成的伪数组
console.log(f.length); //形参的长度
console.log(arguments.length); //实参伪数组的长度
}
2.arguments可以修改元素的值,但不能改变数组的长短。
10-关于DOM(Document Object Model)的事件操作
1.Javascript的组成:
1.ECMAScript:JavaScript的语法标准。包括变量、表达式、运算符、函数、if语句、for语句等。
2.DOM:文档对象模型,操作网页上的元素的API。比如让盒子移动、变色、轮播图等。
3.BOM浏览器对象模型,操作浏览器部分功能的API。比如让浏览器自动滚动。
2.事件:
JS是以事件驱动为核心的语言
3.事件3要素:
事件3要素:事件源,事件,事件驱动程序
事件源:html标签,DOM
事件:JS事件,在网页中的某一个行为
事件驱动:因为事件行为而对DOM进行的操作
example:
4.DOM操作实例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
#box {
width: 300px;
height: 300px;
background-color: #1c6fe2;
}
</style>
</head>
<body>
<button>隐藏</button>
<div id="box"></div>
<script>
var box = document.getElementById('box');
var btn = document.getElementsByTagName('button')[0];
var flag = true;
btn.onclick = function () {
if (flag) {
box.style.display = 'none';
flag = false;
} else {
box.style.display = 'block';
flag = true;
}
}
</script>
</body>
</html>
5.常用JS事件:
onclick: 鼠标单击
ondbcliick: 鼠标双击
onkeyup: 按下并释放键盘上的一个按键时触发
onchange: 文本内容或者下拉菜单中的选项发生改变时触发
onfocus: 获得焦点,表示文本框等获得鼠标光标
onblur: 失去焦点,表示文本框等失去鼠标光标
onmouseover: 鼠标悬停
onmouseout: 鼠标移出
onload: 网页文档加载事件
onunload: 关闭网页时
onsubmit: 提交表单时
onreset: 重置表单时
6.获取事件源的方式:
1.通过标签ID获取:
var box1 = document.getElementById('box1')
2.通过类名获取:(获取到的是数组)
var box2 = document.getElementsByClassName('box2')
3.通过标签获取:(获取到的是数组)
var box3 = document.getElementsByTagName("box3");
7.绑定事件的方式:
1.直接绑定匿名函数:
example:
var box1 = document.getElementById('box1');
box1.onmouseover = function(){
box1.style.backgrandColor = 'black';
}
2.先定义函数,再进行绑定:
example:
var box2 = document.getElementById('box2');
function fn(){
box2.style.width = '200px';
}
box2.onclick = fn;
3.注意事项:
1.在js中的css属性值,都需要加引号
2.在js里写css属性名时,是backgroundColor,不是CSS里面的background-Color。记得所有的像css属性的text-*,line-*、backgroun-*等在js中都写成驼峰
8.onload
当页面加载(文本和图片)完毕的时候,触发onload事件。
有一点我们要知道:js的加载是和html同步加载的。因此,如果使用元素在定义元素之前,容易报错。这个时候,onload事件就能派上用场了,我们可以把使用元素的代码放在onload里,就能保证这段代码是最后执行。
建议是:整个页面上所有元素加载完毕在执行js内容。所以,window.onload可以预防使用标签在定义标签之前。
11-DOM介绍
1.什么是DOM:
DOM:文档对象模型。DOM 为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构。目的其实就是为了能让js操作html元素而制定的一个规范。
DOM就是由节点组成的。
2.解析过程
HTML加载完毕,渲染引擎会在内存中把HTML文档,生成一个DOM树,getElementById是获取内中DOM上的元素节点。然后操作的时候修改的是该元素的属性。
3.DOM树(一切都是节点)
在HTML当中,一切都是节点:(非常重要)
1.元素节点:HMTL标签。
2.文本节点:标签中的文字(比如标签之间的空格、换行)
3.属性节点::标签的属性。
整个html文档就是一个文档节点。所有的节点都是Object。
4.DOM可以做什么
1.找对象(元素节点)
2.设置元素的属性值
3.设置元素的样式
4.动态创建和删除元素
5.时间的触发响应:事件源,事件,事件驱动程序
5.DOM节点的获取
1.通过标签ID获取:
var box1 = document.getElementById('box1')
2.通过类名获取:(获取到的是数组)
var box2 = document.getElementsByClassName('box2')
3.通过标签获取:(获取到的是数组)
var box3 = document.getElementsByTagName("box3");
6.DOM访问关系的获取
DOM的节点并不是孤立的,因此可以通过DOM节点之间的相对关系对它们进行访问。
节点的访问关系,是以属性的方式存在的。
1.JS中的父子兄访问关系:
1.父节点:
parentNode //父节点
2.兄弟节点:
nextSibling //下一个
nextElementSibling
previousSibling //前一个
previousElementSibling
3.子节点
firstChild //第一个子节点
firstElementChild
lastChild //最后一个子节点
lastElementChiled
4.所有子节点
childNodes
children
2.获取父节点
节点.parentNode
3.nextSibling 和nextElementSibling
nextSibling
指的是下一个节点(包括标签、空文档和换行节点)
火狐、谷歌、IE9+版本:都指的是下一个节点(包括标签、空文档和换行节点)。
IE678版本:指下一个元素节点(标签)。
nextElementSibling:
火狐、谷歌、IE9+版本:都指的是下一个元素节点(标签)。
总结:为了获取下一个元素节点,我们可以这样做:在IE678中用nextSibling,在火狐谷歌IE9+以后用nextElementSibling,于是,综合这两个属性,可以这样:
下一个兄弟节点 = 节点.nextElementSibling || 节点.nextSibling
其他类似的节点获取都是同样规则。
4.根据索引获取指定兄弟节点
节点自己.parentNode.children[index]; //随意得到兄弟节点
5.获取所有子节点
children:非标准属性。返回的是指定元素的子元素节点的集合。【重要】
1.它只返回HTML节点,甚至不返回文本节点。
2.在IE6/7/8中包含注释节点(在IE678中,注释节点不要写在里面)。
子节点数组 = 父节点.children; //获取所有节点。用的最多。
6.nodeType
nodeType == 1 //表示元素节点
nodeType == 2 //表示属性节点
nodeType == 3 //表示文本节点
7.DOM节点操作(重要):
节点的访问关系都是属性
节点的操作都是函数
1.创建节点:
var box1 = document.createElement("li")
2.插入节点:
方式一:
父节点.appendChild(新的子节点)
解释:
在父节点中的最后一个子节点的后面插入新的节点
方式二:
父节点.insertBefore(新的子节点,作为参考的子节点);
解释:
1.在参考节点前插入一个新的节点。
1.如果不给定参考节点,则在父节点中的最后一个子节点的后面插入新的节点
3.删除节点:
父节点.removeChild(子节点);
如果想删除节点本身,可以使用下面这种方式:
node1.parentNode.removeChild(node1)
4.复制节点:
要复制的节点.cloneNode();
要复制的节点.cloneNode(true);
1.不给参数和给定false:只复制节点本身,不复制其子节点。
2.给定参数为true:复制节点和节点的所有子节点
8.设置节点的属性
我们可以获取节点的属性值、设置节点的属性值、删除节点的属性。
<img src="images/1.jpg" class="image-box" title="美女图片" alt="地铁一瞥" id="a1">
1.获取节点属性值:
node.getAttribute('class')
example:
var img1 = document.getElementById('a1');
console.log(img1.getAttribute('src'))
console.log(img1.getAttribute('class')
2.设置节点属性:
node.setAttribute('src','images/3.jpg')
example:
img1.setAttribute('class','big-box')
3.删除属性:
node.removeAttribute('class')
example:
img1.removeAttribute('alt')
9.获取和设置标签中的内容:
1.innerHTML:取双标签中的内容,可以解析内容中的标签元素(p,a,div)
2.innerText:获取双标签中的内容,只获取内容,不获取标签
3.value:设置单标签中的值(input submit)
example:
<body>
<div id="box1">
<a href="">哈哈哈哈</a>
<p>
我是一个段落
</p>
<form action="">
<input type="submit" name="" id="sb1">
</form>
</div>
<script>
var box1 = document.getElementById('box1');
var sb1 = document.getElementById('sb1');
console.log(box1.innerHTML);
console.log(box1.innerText);
sb1.value='提交你妹啊';
</script>
</body>
12-部分js案例
13-面向对象
创建对象常用的几种方式
1.使用Object或者字面量的方式
example:
var student = new Object();
student.name = 'Alice';
student.age = 20;
example:
var student = {
name:'Alice',
age: 20
};
2.工厂函数创建
example:
funciton createStudent(name,age){
var obj = new Object;
obj.name = name;
obj.age = age;
return obj;
}
var student1 = createStudent('Alice', 18);
var student2 = createStudent('Albort', 30);
3.构造函数方式创建
example:
funciton Student(name,age){
this.name = name;
this.age = age;
}
function Fruit(name,color){
this.name = name;
this.color = color;
}
var s1 = new Student('Alice', 18);
var f1 = new Fruit('apple', 'red');
4.原型的模式创建对象
function Student(){
this.name = name;
this.age = age;
}
Student.protptype.alertName = function(){
alert(this.name);
}
var s1 = new Student('Alice',18);
var s2 = new Student('Albort',20);
14-定时器
JS中定时器分为两种:
1.setTimeout() //一次性定时器
2.setInterval() //循环定时器
1.setTimeout
<body>
<p id="p1">开始倒数3S</p>
<script src="jquery-3.3.1.min.js"></script>
<script>
function sayHi(){
$('#p1').html('Hi')
}
setTimeout(sayHi,3000);
</script>
</body>
2.setInterval
<body>
<p id="p1">开始倒数</p>
<script src="jquery-3.3.1.min.js"></script>
<script>
var count = 10;
var timer = null;
function sayHi() {
$('#p1').html(count);
count -= 1;
if (count == 0) {
$('#p1').html('我爱你呀');
clearInterval(timer);
}
}
timer = setInterval(sayHi, 1000)
</script>
</body>
15-BOM
1.什么是BOM
BOM:Browser Object Model,浏览器对象模型,操作浏览器部分功能的API。比如让浏览器自动滚动。
2.widnow对象
1.window对象是BOM的顶层(核心)对象,所有对象都是通过它延伸出来的,也可以称为window的子对象。
2.DOM是BOM的一部分。
3.window对象是JavaScript中的顶级对象。
4.全局变量、自定义函数也是window对象的属性和方法。
5.window对象下的属性和方法调用时,可以省略window。
3.BOM常见内置方法和对象
1.弹出系统对话框
alert(1) //是window.alert(1)的简写
2.打开窗口,关闭窗口
window.open(url,target) //url:要打开的网址, target:新的窗口的位置,_blank, _self, _parent父框架,默认值是_blank
example:
<body>
<!--行间的js中的open() window不能省略-->
<button onclick="window.open('http://www.9158.com')">9158美女直播</button>
<button>网易云音乐</button>
<button onclick="window.close()">关闭</button>
<button>关闭</button>
<script src="jquery-3.3.1.min.js"></script>
<script>
var but2 = document.getElementsByTagName('button')[1];
but2.onclick = function(){
open('http://music.163.com', '_self')
};
var but4 = document.getElementsByTagName('button')[3];
but4.onclick = function () {
if(confirm('是否关闭?')){
close()
}
}
</script>
</body>
4.location对象
window.location可以简写成location。location相当于浏览器地址栏,可以将url解析成独立的片段。
location的属性:
1.href:跳转
2.hash 返回url中#后面的内容,包含#
3.host 主机名,包括端口
4.hostname 主机名
5.pathname url中的路径部分
6.protocol 协议 一般是http、https
7.search 查询字符串
example:(点击DIV跳转)
<body>
<div style="width: 200px;height: 200px;background-color: red;">
点我跳转啊啊啊啊啊啊
</div>
<script>
var box = document.getElementsByTagName('div')[0]
box.onclick = function () {
location.href = 'https://www.baidu.com'
}
</script>
</body>
example:(倒数5S自动跳转到指定网页)
<body>
<h1>
404 Page Not Found!
</h1>
<p>页面将在5秒后跳转 <span></span></p>
<script>
var timer = null;
var sp = document.getElementsByTagName('span')[0];
var count = 5;
timer = setInterval(function () {
sp.innerText = '正在倒数:' + count + 'S';
count -= 1;
if (count == 0) {
location.href = 'http://www.baidu.com';
clearInterval(timer);
}
}, 1000)
</script>
</body>
location对象的方法
location.reload():重新加载网页(刷新)
5.window.navigator对象
window.navigator 的一些属性可以获取客户端的一些信息。
userAgent:系统,浏览器)
platform:浏览器支持的系统,win/mac/linux
example:
console.log(navigator.userAgent);
console.log(navigator.platform);
15-client、offset、scroll系列
1.client
* clientTop 内容区域到边框顶部的距离 ,说白了就是上边框的宽度
* clientLeft 内容区域到边框左部的距离,说白了就是左边框的宽度
* clientWidth 内容区域+左右padding 可视宽度
* clientHeight 内容区域+ 上下padding 可视高度
2.屏幕的可视区域(可用于监控网页的大小)
<body>
<div></div>
<div></div>
<script>
//屏幕可视化区域
var box1 = document.getElementsByTagName('div')[0];
var box2 = document.getElementsByTagName('div')[1];
window.onload = function () {
// console.log(document.documentElement.clientHeight);
// console.log(document.documentElement.clientWidth);
box1.innerText = '初始窗口大小:' + document.documentElement.clientHeight + ',' + document.documentElement.clientWidth
};
//检测窗口大小发生变化
window.onresize = function () {
// console.log(document.documentElement.clientHeight);
// console.log(document.documentElement.clientWidth);
box2.innerText = '变化的窗口大小:' + document.documentElement.clientHeight + ',' + document.documentElement.clientWidth
};
</script>
</body>
3.offSet
offsetWidth:占位宽, 盒子宽度+padding+border
offsetHeight:占位高, 盒子高度+padding+border
offsetTop: 如果盒子没有设置定位 到body的顶部的距离,如果盒子设置定位,那么是以父辈为基准的top值
offsetLeft: 如果盒子没有设置定位 到body的左部的距离,如果盒子设置定位,那么是以父辈为基准的left值
4.scroll 检测窗口滚动
document.documentElement.scrollTop #常用,窗口有向下滚动距离
document.documentElement.scrollLeft
document.documentElement.scrollWidth
document.documentElement.scrollHeight
浙公网安备 33010602011771号