第五章 JS典型特效

注意:

1、JS在HTML中从上到下依次执行,所以获取元素的结果与JS的位置有关

<!DOCTYPE html>

<html>

<head>

<title>获取元素</title>

//外部JS警告框弹出的是【null】

<script type="text/javascript" src="js/index.js"></script>

//警告框弹出的是【null】

<script type="text/javascript">

alert(document.getElementById("my"));

</script>

</head>

<body>

<div id="my">haha</div>

//警告框弹出的是【object HTMLDivElement】

<script type="text/javascript">

alert(document.getElementById("my"));

</script>

</body>

</html>

注:解决方法(1)将JS放到网页文档末尾(2)使用window.onload=initi;当文档加载完成时再运行JS的函数initi【此时函数使用时只用函数名,不要小括号】。

JS完成特效

1、 时钟特效

window.onload=initi; //给文档加载完成事件绑定名叫initi的函数

function initi(){

setInterval("getTime()",10); //每隔1000毫秒执行一次getTime()函数

}

function getTime(){

//1.获取元素

var timeDiv=document.getElementById("my");

//2.累加时间

var today=new Date(); //定义时间对象

var tStr=""; //定义时间字符串

tStr+=today.getFullYear()+"年";

tStr+=(today.getMonth()+1)+"月";

tStr+=today.getDate()+"日";

tStr+=today.getHours()+"时";

tStr+=today.getMinutes()+"分";

tStr+=today.getSeconds()+"秒";

//3.修改元素

timeDiv.innerHTML=tStr; //将时间字符串丢到Div中

}

2、弹出窗口特效——病毒页面效果——每隔5s跳出页面

function opens(){

window.open("https://123.sogou.com/","","  width=250, height=265,toolbar=0,scrollbars=0,location=0,status=0,menubar=0,resizable=0");

}

var t=setInterval("opens()",5000);

1、 Tab切换——使用数组和循环完成Tab切换

// JavaScript Document

//定义三个按钮

var btns=new Array();

//定义三个内容

var contents=new Array();

//文档加载完成做事情

window.onload=function(){

//取出所有div

var divs=document.getElementsByTagName("div");

var i=0;//按钮的下标

var j=0;//内容的下标,下标从0开始

for(var k=0;k<divs.length;k++){

//根据div块的className将不同的div存入相应的数组中

if(divs[k].className=="btnTab"){

//如果class的值和按钮的class一致就存入

btns[i]=divs[k];

i++;//让下标连续

/*

两句可以写作

btns[i++]=divs[ks];

*/

}

if(divs[k].className=="contentTab"){

//如果class的值和按钮的class一致就存入

contents[j]=divs[k];

j++;//让下标连续

}

}

for(var t=0;t<btns.length;t++){

bangd(t);//循环每个按钮,绑定函数

}

//使用循环进行事件绑定

function bangd(temp){

//给第i个按钮绑定单击事件

btns[temp].onclick=function(){

for(var m=0;m<contents.length;m++){

if(m==temp){

contents[m].style.display="block";

}else{

contents[i].style.display="none";

}

}

}

}

}

2、 全选和反选

a) 全选

//文档加载完成时,绑定匿名函数

window.onload=function(){

//通过id获取全选复选框

var checkAll=document.getElementById("checkAll");

//根据name取复选框,返回对象数组

var hobby=document.getElementsByName("hobby");

//给全选按钮绑定单击事件,事件是一个匿名函数,函数可以嵌套

checkAll.onclick=function(){

//this关键字,指的是当前正在运行时的对象

/*

if(this.checked==true){//全选被选中

for(var i=0;i<hobby.length;i++){

//使用循环选中所有按钮

hobby[i].checked==true;

}

}else{//否则,所有按钮都不被选中

for(var i=0;i<hobby.length;i++){

hobby[i].checked==false;

}

}

*/

//优化代码【this指的是全选复选框,给所有爱好赋上全选框的值】

for(var i=0;i<hobby.length;i++){

hobby[i].checked==this.checked;

}

}

}

b) 反选

//文档加载完成时,绑定匿名函数

window.onload=function(){

//通过id获取全选复选框

var checkFan=document.getElementById("checkFan");

//根据name取复选框,返回对象数组

var hobby=document.getElementsByName("hobby");

//给反选按钮绑定单击事件,事件是一个匿名函数,函数可以嵌套

checkFan.onclick=function(){

for(var i=0;i<hobby.length;i++){

hobby[i].checked=!hobby[i].checked;

//循环每一个复选框,值为自己的相反值

}

}

}

3、 表格的增删改查

…………………………………未完待续,我先睡了有时间再发………………………

上一篇:js 时钟特效


下一篇:未封装的js放大镜特效