JavaScript 经典实例收集整理

作者 | trigkit4

来源 | segmentfault.com/a/1190000002559158

跨浏览器事件

跨浏览器添加事件

//跨浏览器添加事件    function addEvent(obj,type,fn){        if(obj.addEventListener){            obj.addEventListener(type,fn,false);        }else if(obj.attachEvent){//IE            obj.attchEvent('on'+type,fn);        }    }

跨浏览器移除事件

//跨浏览器移除事件function removeEvent(obj,type,fn){    if(obj.removeEventListener){        obj.removeEventListener(type,fn,false);    }else if(obj.detachEvent){//兼容IE        obj.detachEvent('on'+type,fn);    }}

跨浏览器阻止默认行为

//跨浏览器阻止默认行为    function preDef(ev){        var e = ev || window.event;        if(e.preventDefault){            e.preventDefault();        }else{            e.returnValue =false;        }    }

跨浏览器获取目标对象

//跨浏览器获取目标对象function getTarget(ev){    if(ev.target){//w3c        return ev.target;    }else if(window.event.srcElement){//IE        return window.event.srcElement;    }}

跨浏览器获取滚动条位置

//跨浏览器获取滚动条位置,sp == scroll position    function getSP(){        return{            top: document.documentElement.scrollTop || document.body.scrollTop,            left : document.documentElement.scrollLeft || document.body.scrollLeft;        }    }

跨浏览器获取可视窗口大小

//跨浏览器获取可视窗口大小          function  getWindow () {            if(typeof window.innerWidth !='undefined') {                return{                    width : window.innerWidth,                    height : window.innerHeight                }            } else{                return {                    width : document.documentElement.clientWidth,                    height : document.documentElement.clientHeight                }            }        },

js 对象冒充

<script type = 'text/javascript'>    function Person(name , age){        this.name = name ;        this.age = age ;        this.say = function (){            return "name : "+ this.name + " age: "+this.age ;        } ;    }    var o = new Object() ;//可以简化为Object()    Person.call(o , "zhangsan" , 20) ;    console.log(o.say() );//name : zhangsan age: 20</script>

js 异步加载和同步加载

异步加载也叫非阻塞模式加载,浏览器在下载js的同时,同时还会执行后续的页面处理。

script标签内,用js创建一个script元素并插入到document中,这种就是异步加载js文件了:

(function() {    var s = document.createElement('script');    s.type = 'text/javascript';    s.async = true;    s.src = 'http://yourdomain.com/script.js';    var x = document.getElementsByTagName('script')[0];     x.parentNode.insertBefore(s, x);})();

同步加载

平常默认用的都是同步加载。如:

<script src="http://yourdomain.com/script.js"></script>

同步模式又称阻塞模式,会阻止浏览器的后续处理。停止了后续的文件的解析,执行,如图像的渲染。

浏览器之所以会采用同步模式,是因为加载的js文件中有对dom的操作,重定向,输出document等默认行为,所以同步才是最安全的。

通常会把要加载的js放到body结束标签之前,使得js可在页面最后加载,尽量减少阻塞页面的渲染。这样可以先让页面显示出来。

同步加载流程是瀑布模型,异步加载流程是并发模型。

js获取屏幕坐标

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>    <meta name="auther" content="fq" />    <title>获取鼠标坐标</title></head><body><script type="text/javascript">    function mousePosition(ev){        if(ev.pageX || ev.pageY){            return {x:ev.pageX, y:ev.pageY};        }        return {            x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,            y:ev.clientY + document.body.scrollTop - document.body.clientTop        };    }    function mouseMove(ev){        ev = ev || window.event;        var mousePos = mousePosition(ev);        document.getElementById('xxx').value = mousePos.x;        document.getElementById('yyy').value = mousePos.y;    }    document.onmousemove = mouseMove;</script>X:<input id="xxx" type="text" /> Y:<input id="yyy" type="text" /></body></html>

注释:
1.documentElement 属性可返回文档的根节点。
2.scrollTop() 为滚动条向下移动的距离
3.document.documentElement.scrollTop 指的是滚动条的垂直坐标
4.document.documentElement.clientHeight 指的是浏览器可见区域高度


DTD已声明的情况下:

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

如果在页面中添加这行标记的话

IE

document.body.clientWidth ==> BODY对象宽度document.body.clientHeight ==> BODY对象高度document.documentElement.clientWidth ==> 可见区域宽度document.documentElement.clientHeight ==> 可见区域高度

Firefox

document.documentElement.scrollHeight ==> 浏览器所有内容高度document.body.scrollHeight ==> 浏览器所有内容高度document.documentElement.scrollTop ==> 浏览器滚动部分高度document.body.scrollTop ==>始终为0document.documentElement.clientHeight ==>浏览器可视部分高度document.body.clientHeight ==> 浏览器所有内容高度

Chrome

document.documentElement.scrollHeight ==> 浏览器所有内容高度document.body.scrollHeight ==> 浏览器所有内容高度document.documentElement.scrollTop==> 始终为0document.body.scrollTop==>浏览器滚动部分高度document.documentElement.clientHeight ==> 浏览器可视部分高度document.body.clientHeight ==> 浏览器所有内容高度

浏览器所有内容高度即浏览器整个框架的高度,包括滚动条卷去部分+可视部分+底部隐藏部分的高度总和

浏览器滚动部分高度即滚动条卷去部分高度即可视顶端距离整个对象顶端的高度。

综上

1、document.documentElement.scrollTop和document.body.scrollTop始终有一个为0,所以可以用这两个的和来求scrollTop

2、scrollHeight、clientHeight 在DTD已声明的情况下用documentElement,未声明的情况下用body。

clientHeight
 在IE和FF下,该属性没什么差别,都是指浏览器的可视区域,即除去浏览器的那些工具栏状态栏剩下的页面展示空间的高度。
PageX和clientX

PageX:鼠标在页面上的位置,从页面左上角开始,即是以页面为参考点,不随滑动条移动而变化

clientX:鼠标在页面上可视区域的位置,从浏览器可视区域左上角开始,即是以浏览器滑动条此刻的滑动到的位置为参考点,随滑动条移动 而变化。

可是悲剧的是,PageX只有FF特有,IE则没有这个,所以在IE下使用这个:

PageY=clientY+scrollTop-clientTop;(只讨论Y轴,X轴同理,下同)

scrollTop代表的是被浏览器滑动条滚过的长度

offsetX:IE特有,鼠标相比较于触发事件的元素的位置,以元素盒子模型的内容区域的左上角为参考点,如果有boder`,可能出现负值

只有clientX和screenX 皆大欢喜是W3C标准.其他的,都纠结了.
最给力的是,chrome和safari一条龙通杀!完全支持所有属性

js拖拽效果

<!doctype html><html lang="zn-CN"><head>    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />    <title></title>    <style type="text/css">        #login{            height: 100px;            width: 100px;            border: 1px solid black;            position: relative;            top:200px;            left: 200px;            background: red;        }</style></head><body><div id="login"></div><script type="text/javascript">    var oDiv = document.getElementById("login");    oDiv.onmousedown = function(e){        var e = e || window.event;//window.event兼容IE,当事件发生时有效        var diffX = e.clientX - oDiv.offsetLeft;//获取鼠标点击的位置到所选对象的边框的水平距离        var diffY = e.clientY - oDiv.offsetTop;        document.onmousemove = function(e){ //需设为document对象才能作用于整个文档            var e = e||window.event;            oDiv.style.left = e.clientX - diffX + 'px';//style.left表示所选对象的边框到浏览器左侧距离            oDiv.style.top = e.clientY -diffY + 'px';        };        document.onmouseup = function(){            document.onmousemove = null;//清除鼠标释放时的对象移动方法            document.onmouseup = null;        }    }</script></body> </html>

offsetTop 返回的是数字,而 style.top 返回的是字符串,除了数字外还带有单位:px

js获取图片原始大小尺寸

var img = $("#img_id"); // Get my img elemvar pic_real_width, pic_real_height;$("&lt;img/&gt;") // Make in memory copy of image to avoid css issues    .attr("src", $(img).attr("src"))    .load(function() {        pic_real_width = this.width;   // Note: $(this).width() will not        pic_real_height = this.height; // work for in memory images.    });

js循环遍历数

<script>         //循环遍历数组         var animals = ["cat",'dog','human','whale','seal'];         var animalString = "";         for(var i = 0;i<animals.length;i++){             animalString += animals[i] + " ";         }         alert(animalString);  //输出数组里的每个项</script>

遍历二维数组

 <script>         var arr=[[0,0,0,0,0,0],[0,0,1,0,0,0],[0,2,0,3,0,0],[0,0,0,0,0,0]];         for(var i=0;i<arr.length;i++){          //遍历每一个具体的值          for(var j=0;j<arr[i].length;j++){                     document.writeln(arr[i][j]+" ");               }             document.writeln("<br/>");          } </script>

阻止表单重复提交

有两种方法可以解决:一是提交之后,立刻禁用点击按钮;第二种就是提交之后取消后续的表单提交操作。

document.getElementById("btn").disabled = true;//第一次提交后,将按钮禁用

这种方式只能用于通过提交按钮防止重复提交,还可以使用如下方式:

var flag = false;//设置一个监听变量if(flag ==true)return;//退出事件flag = true;//表示提交过一次了

字符串部分

在字符串中查找子字符串

<script type="text/javascript">    var test = 'Welcome to my blog!';    var value = 'blog';    var subValue = test.indexOf(value);    console.log(subValue);//14,子字符串的索引</script>

Number和Math部分

数字可以是一个直接量,也可以是一个对象,但是Math对象不同,他没有构造函数,并且其所有的属性和方法都是直接通过这个对象来访问的

把十进制转化为一个十六进制值

var num = 255;console.log(num.toString(16));//

js中,十进制数字以0x开头,八进制数字总是以0开头

随进产生颜色

<script type="text/javascript">    function randomVal(val){        return Math.floor(Math.random()*(val + 1));    }    function randomColor(){        return 'rgb(' + randomVal(255) + ',' + randomVal(255) + ',' + randomVal(255) + ')';    }</script>

目前,所有浏览器都支持RGB表示法和十六进制表示法,除了IE7,它只支持十六进制表示法

在角度和弧度之间转换

var rad = degrees*(Math.PI/180);var degrees = rad*(180/Math.PI);

数组部分

创建多维数组

<script type="text/javascript">    var arrayLength = 3;//设置数组长度    //创建数组    var multiArray = new Array(arrayLength);    for(var i =0;i<multiArray.length;i++){        multiArray[i] = new Array(arrayLength);    }    //给第一个数组索引添加项    multiArray[0][0] = 'phone';    multiArray[0][1] = 'book';    multiArray[0][2] = 'TV';    //第二个    multiArray[1][0] = 2;    multiArray[1][1] = 1;    multiArray[1][2] = 98;    //第三个    multiArray[2][0] = ['java','python'];    multiArray[2][1] = ['js','C++'];    multiArray[2][2] = ['Haskell','php'];</script>

排序数组

<script type="text/javascript">     var fruits = ['banana','apple','orange','strawberry'];    console.log(fruits.sort());//Array [ "apple", "banana", "orange", "strawberry" ]    var num = [32,43,2,5,-23,0,4];    console.log(num.sort());//Array [ -23, 0, 2, 32, 4, 43, 5 ]</script>

Array对象的sort方法会按照字母顺序来排序数组元素。对于数字,是按照字符编码的顺序进行排序。

function compare(a,b){
    return a-b;
}
var num = [32,43,2,5,-23,0,4];
console.log(num.sort(compare));//Array [ -23, 0, 2, 4, 5, 32, 43 ]
Date日期时间部分

js计算时间差

var date1=new Date();  //开始时间,当前时间var date2=new Date(); //结束时间,需传入时间参数var date3=date2.getTime()-date1.getTime();  //时间差的毫秒数//计算出相差天数var days=Math.floor(date3/(24*3600*1000));//计算出小时数var leave1=date3%(24*3600*1000);    //计算天数后剩余的毫秒数var hours=Math.floor(leave1/(3600*1000));//计算相差分钟数var leave2=leave1%(3600*1000);        //计算小时数后剩余的毫秒数var minutes=Math.floor(leave2/(60*1000));//计算相差秒数var leave3=leave2%(60*1000);      //计算分钟数后剩余的毫秒数var seconds=Math.round(leave3/1000);console.log(" 相差 "+days+"天 "+hours+"小时 "+minutes+" 分钟"+seconds+" 秒");

正则部分

js实现千分位分隔

<script type="text/javascript">    function cc(s){        if(/[^0-9\.]/.test(s)) return "invalid value";        s=s.replace(/^(\d*)$/,"$1.");        s=(s+"00").replace(/(\d*\.\d\d)\d*/,"$1");        s=s.replace(".",",");        var re=/(\d)(\d{3},)/;        while(re.test(s))            s=s.replace(re,"$1,$2");        s=s.replace(/,(\d\d)$/,".$1");        return "¥" + s.replace(/^\./,"0.")    }</script><input onchange="this.value=cc(this.value)" />

js判断传入参数是否为质数

function fn(input) {  input = parseInt(input,10);  return isPrime(input) ? 'is prime' : 'not prime';}function isPrime(input) {  if (input < 2) {    return false;  } else {    for (var i = 2; i <= Math.sqrt(input); i++) {      if (input % i == 0) {        return false;      }    }  }  return true;}

js判断字符串出现最多的字符,并统计次数

//js实现一个函数,来判断一个字符串出现次数最多的字符,并统计这个次数    function countStr(str){        var obj = {};        for(var i = 0, l = str.length,k; i < l ;i++){            k = str.charAt(i);            if(obj[k]){                obj[k]++;            }else{                obj[k] = 1;            }        }        var m = 0,i=null;        for(var k in obj){            if(obj[k] > m){                m = obj[k];                i = k;            }        }        return i + ':' + m;    }

本文完〜

专注分享当下最实用的前端技术。关注前端达人,与达人一起学习进步!

长按关注"前端达人"

前言   第1章使用JavaScript字符串   1.0简介   1.1连接两个或多个字符串   1.2连接字符串和另一种数据类型   1.3条件比较字符串   1.4在字符串中查找子字符串   1.5从一个字符串提取子字符串   1.6检查一个存在的、非空的字符串   1.7将一个关键字字符串分解为单独的关键字   1.8插入特殊字符   1.9处理textarea的单个行   1.10去除字符串末尾的空白   1.11左补充或右补充一个字符串   第2章使用正则表达式   2.0简介   2.1测试一个子字符串是否存在   2.2测试不区分大小写的子字符串匹配   2.3验证社会安全号码   2.4找到并突出显示一个模式的所有实例   2.5使用新字符串替换模式   2.6使用捕获圆括号交换一个字符串中的单词   2.7使用正则表达式来去除空白   2.8使用命名实体来替代HTML标签   2.9搜索特殊字符   第3章日期、时间和定时器   3.0简介   3.1打印出今天的日期   3.2打印出UTC日期和时间   3.3打印出一个ISO 8601格式日期   3.4把一个ISO 8601格式的日期转换为Date对象可接受的一种格式   3.5创建一个特定的日期   3.6规划未来的一个日期   3.7记录流逝的时间   3.8创建一个延迟   3.9创建重复性定时器   3.10使用带有定时器的函数闭包   第4章使用Number和Math   4.0简介   4.1保持一个递增的计数   4.2把十进制数转换为一个十六进制值   4.3创建一个随机数生成器   4.4随机产生颜色   4.5把表中的字符串转换为数字   4.6把表中一列的所有数字加和   4.7在角度和弧度之间转换   4.8找到页面元素可容纳的一个圆的半径和圆心   4.9计算圆弧的长度   第5章使用数组和循环   5.0简介   5.1循环遍历数组   5.2创建多维数组   5.3从数组创建一个字符串   5.4排序数组   5.5按顺序存储和访问值   5.6以相反的顺序存储和访问值   5.7创建一个新数组作为已有数组的子集   5.8在数组中搜索   5.9将一个多维数组扁平化   5.10搜索和删除或替换数组元素   5.11对每个数组元素应用一个函数   5.12对数组中的每个元素执行一个函数并返回一个新数组   5.13创建一个过滤后的数组   5.14验证数组内容   5.15使用一个关联数组来存储表单元素名和值   第6章使用JavaScript函数构建重用性   6.0简介   6.1创建一段可重用的代码   6.2把单个数据值传递到函数   6.3把复杂的数据对象传递给函数   6.4创建一个动态运行时函数   6.5把一个函数当做参数传递给另一个函数   6.6实现递归算法   6.7创建能够记住其状态的函数   6.8使用一个通用的科里化函数提高应用程序性能   6.9使用缓存计算(Memoization)来提高应用程序性能   6.10使用匿名函数包装全局变量   第7章处理事件   7.0简介   7.1检测页面何时完成载入   7.2使用Event对象捕获鼠标点击事件的位置   7.3创建一个通用的、可重用的事件处理函数   7.4根据修改的条件来取消一个事件   7.5阻止事件在一组嵌套元素中传播   7.6捕获键盘活动   7.7使用新的HTML 5拖放   7.8使用Safari方向事件和其他移动开发环境   第8章浏览器模块   8.0简介   8.1请求Web页面访问者确认一项操作   8.2创建一个新的、下拉式的浏览器窗口   8.3找到关于浏览器的访问页面   8.4警告Web页面访问者将要离开页面   8.5根据颜色支持更改样式表   8.6根据页面大小修改图像尺寸   8.7在CMS模板页面中创建面包屑路径   8.8将一个动态页面加入书签   8.9针对后退按钮、页面刷新来保持状态   第9章表单元素和验证   9.0简介   9.1访问表单文本输入值   9.2动态关闭或打开表单元素   9.3根据一个事件从表单元素获取信息   9.4当点击单选按钮的时候执行一个动作   9.5检查一个有效的电话号码   9.6取消表单提交   9.7阻止重复表单提交   9.8隐藏和显示表单元素   9.9根据其他表单选择修改一个选项列表   第10章调试和错误处理   10.0简介   ……   第11章访问页面元素   第12章创建和删除元素和属性   第13章使用Web页面空间   第14章使用JavaScriptCSS和ARIA创建交互和可访问性效果   第15章创建富媒体和交互应用程序   第16章JavaScript对象   第17章JavaScript库   第18章通信   第19章使用结构化数据   第20章持久化   第21章JavaScript创新用法
目录 -------------------------------------------------------------------------------- 第1章 javascript概述 1 1.1 什么是脚本语言 2 1.2 javascript简介 2 1.3 javascriptjava的关系 3 1.4 javascript的基本构成 4 1.4.1 基本数据类型 4 1.4.2 变量 4 1.4.3 常量 5 1.4.4 表达式 6 1.4.5 运算符 6 1.5 javascript的基本语法 10 1.5.1 if条件选择语句 10 1.5.2 switch选择语句 11 1.5.3 do…while语句 12 1.5.4 while循环语句 13 1.5.5 for循环语句 14 1.5.6 break语句与continue语句 15 1.6 javascript的函数调用 16 1.6.1 函数的定义与调用 17 1.6.2 全局变量与局部变量 17 1.6.3 可变参数的函数 17 1.6.4 预定义函数 17 1.7 javascript的对象 19 1.7.1 对象的基本概述 19 1.7.2 对象属性 19 1.7.3 创建对象 20 1.7.4 使用对象 22 1.7.5 其他内部对象 24 1.8 小结 26 第2章 javascript中事件. 窗口和框架的处理 27 2.1 事件处理的基本概念 28 2.2 常用事件及处理 28 2.2.1 浏览器事件 29 2.2.2 鼠标事件 29 2.2.3 文本框事件 30 2.2.4 其他事件 31 2.3 什么是框架 31 2.4 使用框架 32 2.5 小结 32 第3章 链接类特效 33 3.1 按时消失的链接 34 3.2 带滚动提示的链接 36 3.3 动态变换的链接 37 3.4 滚动链接 38 3.5 不断闪动的链接 39 3.6 在按钮上定时显示不同的链接 40 3.7 带链接的滚动字幕 42 3.8 单击链接显示菜单 43 3.9 鼠标右键链接 44 3.10 显示当前页的所有链接 45 3.11 查看网址源代码 46 3.12 将站点加入收藏夹 47 3.13 单击按钮返回默认主页 47 3.14 给指定的人员发信 48 3.15 弹出菜单式链接 49 3.16 图片选择器 50 3.17 链接导航框 51 3.18 小球跟踪链接 52 3.19 单击按钮打开全屏窗口 56 3.20 单选按钮选择链接 56 3.21 隐藏的链接 57 3.22 变换链接颜色 58 3.23 固定链接的位置 59 第4章 时间类特效 61 4.1 时间的水中倒影 62 4.2 简单的日历 63 4.3 带有农历的日历 65 4.4 标题栏显示日期 68 4.5 标题栏显示时间 69 4.6 不同时间的不同问候 69 4.7 记录进入网站的时间 70 4.8 页面的最后更新日期 71 4.9 节日倒计时 72 4.10 定时打开指定页面 72 4.11 显示在背景上的时钟 73 4.12 动态显示访问时间 75 4.13 在指定时间内保存页面 76 4.14 离今天最近的两个星期天 78 4.15 记录在网站停留的时间 79 4.16 带开关的时钟 80 4.17 每天显示一条不同的信息 81 4.18 模拟时钟 82 4.19 英文式的文本时钟 84 4.20 关闭页面时弹出时间警告框 85 4.21 显示在按钮上的时间 86 4.22 计算出生时间 88 4.23 计算几天后将是什么日期 92 第5章 鼠标类特效 95 5.1 让鼠标悬停来开关窗口 96 5.2 鼠标的十字星准星 96 5.3 鼠标的文字跟踪 97 5.4 鼠标经过时改变文本颜色 99 5.5 鼠标驱动图片变化 100 5.6 鼠标悬停时背景色改变 101 5.7 鼠标右键弹出对话框 102 5.8 鼠标的图片旋转跟踪 103 5.9 旋转的鼠标光环 105 5.10 跟随鼠标旋转的文字 107 5.11 单击鼠标右键打开网站 109 5.12 跟着鼠标的烟花 109 5.13 跟随鼠标的时钟 111 5.14 屏蔽鼠标右键 115 5.15 跟随鼠标的滚动字幕 116 5.16 鼠标悬停打开新的页面 117 5.17 鼠标的指针踪迹效果 118 5.18 跟随鼠标跳动的星星 119 5.19 冒水泡的鼠标 121 5.20 跟随鼠标的幻影文字 123 5.21 非图片鼠标跟踪 124 5.22 自动变化的鼠标指针 127 5.23 跟随鼠标的流星 128 第6章 图片类特效 133 6.1 鼠标控制图片的明暗效果 134 6.2 来回摆动的图片 134 6.3 随意飘动的图像 136 6.4 随意走动的图片 137 6.5 图片的水中倒影效果 140 6.6 可以随意拖动的图片 140 6.7 “雷达”扫描图片效果 142 6.8 图片的变形效果 143 6.9 会抖动的图片 144 6.10 不停闪烁的图片 146 6.11 图片分割显示 146 6.12 图片穿行页面效果 148 6.13 自由移动的图片 149 6.14 图片代替按钮效果 150 6.15 图片的翻转效果 151 6.16 向外扩展的图片 152 6.17 鼠标悬停改变图片 153 6.18 图片模糊效果 155 6.19 图片的探照灯效果 156 6.20 跟随屏幕移动的图片 157 6.21 图片的模糊显示 158 6.22 图片的渐隐渐现 159 6.23 一堆开放的花朵 160 第7章 文字类特效 165 7.1 闪烁的按钮文字 166 7.2 逐个显示的变色文字.. 167 7.3 垂直滚动的文字 168 7.4 文字的渐隐渐显的效果 169 7.5 文字跳动的效果 170 7.6 状态栏的打字效果 172 7.7 文字的逐条显示 172 7.8 文字的旋转效果 174 7.9 文字的心跳效果 175 7.10 文字在文本框中坠落 176 7.11 文字飞舞的效果 178 7.12 横向移动的跑马灯 181 7.13 可随便移动的文字 182 7.14 水波形的文字 183 7.15 首字母大小写的变化 184 7.16 状态栏文字飞出效果 186 7.17 链接文字的滚动效果 188 7.18 不停变色的文字 189 7.19 文字颜色变化的显示效果 190 7.20 选中文本框中的全部文字 192 7.21 按钮上的滚动文字 193 7.22 从天而降的文字 194 7.23 鼠标悬停显示提示文字 200 第8章 页面类特效 203 8.1 下雨的页面效果 204 8.2 网页中的loading条 206 8.3 页面的制作完成时间 207 8.4 在状态栏显示输入字符的页面 208 8.5 页面的加密功能 209 8.6 调色板更换页面背景 211 8.7 滚动信息公告页面 213 8.8 页面背景的颜色变化 215 8.9 页面背景的随机显示 216 8.10 单击按钮打印当前页面 217 8.11 记录用户的来访次数 218 8.12 可选择的页面信息 219 8.13 文本框消失的页面 220 8.14 随机播放背景音乐的页面 221 8.15 能自动滚屏的页面 222 8.16 密码保护页面 223 8.17 检测ie所装插件的页面 224 8.18 页面向右滚屏 225 8.19 渐渐消失的页面 226 8.20 按钮锁定页面 226 8.21 在线改变背景颜色 227 8.22 雪花纷飞的页面 228 8.23 页面直接显示 230 第9章 窗口类特效 233 9.1 按指定要求打开的窗口 234 9.2 控制窗口的打开和关闭 235 9.3 从天而降的窗口 235 9.4 打开慢慢变大的窗口 236 9.5 打开一个四面变大的窗口 237 9.6 定时打开新的窗口 238 9.7 转动出现的窗口 239 9.8 自动弹出的窗口 241 9.9 自动消失的广告窗口 242 9.10 窗口的震动效果 243 9.11 同时打开10个窗口 244 9.12 检测系统信息窗口 245 9.13 测试链接速度的窗口 248 9.14 关闭窗口打开收藏夹 250 9.15 关闭窗口打开指定地址 250 9.16 显示载入时间的窗口 251 9.17 显示浏览器信息的窗口 252 9.18 显示访客登录信息的窗口 253 9.19 标题渐变的窗口 255 9.20 绝对全屏打开链接网页 257 9.21 打开一个频道窗口 258 9.22 在页面中打开窗口 258 9.23 自动滚动的窗口 259 第10章 其他特效 261 10.1 显示下载进度 262 10.2 打开或关闭隐藏层 263 10.3 打字速度测试 264 10.4 改变图片提示背景颜色 266 10.5 渐变色表格 269 10.6 列表内容相互转换 270 10.7 身体健康测试 273 10.8 网络知识测试 275 10.9 方框线上的闪耀效果 278 10.10 自动隐藏的菜单 281 10.11 自动收缩的菜单 283 10.12 爆炸式菜单链接 285 10.13 显示边框的菜单 287 10.14 右键菜单链接 289 10.15 首页导航菜单 291 10.16 ftp登录页面 292 10.17 html颜色代码表 293 10.18 计算平面上两点之间的距离 294 10.19 测试点击速度 295 10.20 元素周期表 297 10.21 计算器 299 10.22 自信测试 302 10.23 滚动交换链接 304 第11章 javascript与activex技术 311 11.1 activex组件 312 11.1.1 什么是activex组件 312 11.1.2 activex的内容 312 11.1.3 activex控制和internet 312 11.2 activex组件的应用 313 11.2.1 网页中的flash对象 313 11.2.2 flash对象的调用 314 11.3 asp与activex组件 315 11.4 asp与javascript语言 315 11.4.1 脚本语言 316 11.4.2 设置脚本语言 316 11.4.3 服务器端的脚本 316 11.4.4 javascript和vbscript的区别 317 11.5 asp与表单处理 317 11.5.1 form数据集合 317 11.5.2 form集合的提交方式 318 11.6 小结 319 第12章 javascript中的数据库调用 321 12.1 数据库的构建 322 12.2 数据库查询语句 323 12.2.1 sql数据库 323 12.2.2 asp中的sql语句 323 12.3 数据库的连接 324 12.3.1 odbc的dsn连接方法 324 12.3.2 odbc的直接连接方法 325 12.3.3 ole db的连接方法 325 12.4 数据库的查询 325 12.4.1 使用connection对象查询数据库 326 12.4.2 使用recordset对象查询数据库 327 12.5 使用javascript访问数据库 330 12.6 小结 331 第13章 综合实例 333 13.1 勇闯迷宫 334 13.2 记忆力游戏 338 13.3 贪吃蛇游戏 342 13.4 打蜜蜂 345 13.5 射击游戏 350 13.6 螃蟹赛跑 353 13.7 数字拼图 358 13.8 填格子游戏 363 13.9 棒球动画 367 13.10 礼花动画 372
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值