注意:

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典型特效的更多相关文章

  1. jQuery系列 第五章 jQuery框架动画特效

    第五章 jQuery框架动画特效 5.1 jQuery动画特效说明 jQuery框架中为我们封装了众多的动画和特效方法,只需要调用对应的动画方法传递合适的参数,就能够方便的实现一些炫酷的效果,而且jQ ...

  2. 读JS高级——第五章-引用类型 _记录

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. D3.js的v5版本入门教程(第五章)—— 选择、插入、删除元素

    D3.js的v5版本入门教程(第五章) 1.选择元素 现在我们已经知道,d3.js中选择元素的函数有select()和selectAll(),下面来详细讲解一下 假设我们的<body>中有 ...

  4. JS复习第五章

    第五章 引用类型 一.Object类型 创建object实例的方式有两种. 第一种是使用new操作符后跟object构造函数,如下所示: ver person = new Object( ) ; pe ...

  5. [书籍翻译] 《JavaScript并发编程》第五章 使用Web Workers

    本文是我翻译<JavaScript Concurrency>书籍的第五章 使用Web Workers,该书主要以Promises.Generator.Web workers等技术来讲解Ja ...

  6. 精通Web Analytics 2.0 (7) 第五章:荣耀之钥:度量成功

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第五章:荣耀之钥:度量成功 我们的分析师常常得不到我们应得的喜欢,尊重和资金,因为我们没有充分地衡量一个黄金概念:成果.因为我们 ...

  7. 读《编写可维护的JavaScript》第五章总结

    第五章 UI层的松耦合 5.1 什么是松耦合 在Web开发中,用户界面是由三个彼此隔离又相互作用的层定义的: HTML是用来定义页面的数据和语义 CSS用来给页面添加样式 JavaScript用来给页 ...

  8. Google V8编程详解(五)JS调用C++

    http://blog.csdn.net/feiyinzilgd/article/details/8453230 最近由于忙着解决个人单身的问题,时隔这么久才更新第五章. 上一章主要讲了Google ...

  9. 《学习OpenCV》练习题第五章第一题ab

    这道题是载入一幅带有有趣纹理的图像并用不同的模板(窗口,核)大小做高斯模糊(高斯平滑),然后比较用5*5大小的窗口平滑图像两次和用11*11大小的窗口平滑图像一次是否接近相同. 先说下我的做法,a部分 ...

随机推荐

  1. Caffe多线程环境下检测缓慢问题

    对于多线程运行环境以及Web框架下(其实也相当于多线程)Caffe运行缓慢的原因可能是仅在某一个线程中设置caffe.set_mode_gpu().但是该操作不会影响其他线程,此时其他线程还是CPU模 ...

  2. You can't specify target table 'ship_product_cat' for update in FROM clause

    有时候我们在编辑update时需要select作为条件,在mysql中有时会出现这样的错误:You can't specify target table for update in FROM clau ...

  3. spring-boot子模块打包去掉BOOT-INF文件夹

    1.spring-boot maven打包,一般pom.xml文件里会加 <plugin> <groupId>org.springframework.boot</grou ...

  4. 【静默】Oracle各类响应文件何在?

    [静默]Oracle各类响应文件何在? --root用户下执行: find -name *.rsp  / 1.创建数据库的响应文件:$ORACLE_HOME/assistants/dbca/dbca. ...

  5. Stack堆栈的数据结构

    1.

  6. EnumUtil 链表转换工具类

    package com.das.common.util; import org.springframework.util.CollectionUtils; import java.lang.refle ...

  7. 浅谈一下Windows下的用户权限

    大学毕业后,选择做了苹果开发,一直是使用的Mac系统,所以对Windows的基本操作忘得几乎一干二净:因为做内网穿透的需要,要用到Windows下的权限问题,所以重新研究了一下Windows设置用户权 ...

  8. error: cannot lock ref 'refs/remotes/origin/master': unable to resolve reference 'refs/remotes/origin/master': reference broken...

    之前在自己的项目中添加了一个分支,然后做了一些操作,比如同步本地的分支情况到远程仓库中,然后在远程仓库中完成分支合并,以及 Pull request 等等操作,后来,在本地仓库中进行 git fetc ...

  9. Microsoft office 2019 正式版镜像下载

    http://www.xitongtiandi.net/soft_yy/4373.htmlMicrosoft office 2019 正式版镜像下载 http://www.xitongtiandi.n ...

  10. 24.redux

    Flux:Flux 是一种架构思想 https://facebook.github.io/flux/ 官网 资料: http://www.ruanyifeng.com/blog/2016/01/flu ...