### 第一个 JS 特效:鼠标提示框
- 分析效果实现原理
- 样式:`div` 的 `display / none`
- 事件:`onmouseover / onmouseout`
- 动手编写效果
- 特效基础
- 事件驱动:`onmouseover`
- 元素属性操作:`obj.style.[...]`
- 特效实现原理概括:响应式用户操作,对页面元素样式修改
- 兼容性问题
```js
// div2.style.display='block'; // 部分浏览器不兼容
document.getElementById('div2').style.display='block'; // 所有浏览器兼容
```
- 函数
- 制作更复杂的效果
- 直接在事件内写代码会很乱
- 引入 `function()` 函数的基本形式
- 把 JS 标签里放入到函数里,类似于 css 里的 `class`
- 变量的使用:别名
- 定义和调用
- 函数定义:告诉系统有这个函数,不会执行
- 函数调用:执行函数里面的代码
- 关系和区别
- 代码
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>第一个JS效果</title>
<style>
#div2 {
display: none;
background: red;
width: 100px;
height: 50px;
font-size: 16px;
}
#div1 {
display: block;
background: red;
width: 100px;
height: 100px;
font-size: 16px;
}
</style>
<script>
// 封装 getElementById 函数
function get(id) {
return document.getElementById(id);
}
// 显示 div2
function show() {
// div2.style.display='block'; // 部分浏览器不兼容
get('div2').style.display='block';
}
// 隐藏 div2
function hide() {
// div2.style.display='none'; // 部分浏览器不兼容
get('div2').style.display='none';
}
// div1 变绿
function toGreen() {
get('div1').style.background='green';
}
// div1 变蓝
function toblue() {
get('div1').style.background='blue';
}
// div1 变红
function toRed() {
get('div1').style.background='red';
}
// 点击循环变色
var i = 0;
function changeColor() {
console.log('i=',i)
if (i == 0) {
toGreen();
i++;
console.log('i=',i)
return;
}
if (i == 1) {
toblue();
i++;
console.log('i=',i)
return;
}
if (i == 2) {
toRed();
i = i - 2;
console.log('i=',i)
return;
}
}
</script>
</head>
<body>
<!-- 调用页内函数修改样式 -->
<input type="button" onclick="changeColor()" value="按钮">
<div id="div1">
</div>
<!-- 行内 JS 修改样式 -->
<input type="checkbox" onmouseover="div2.style.display='block';" onmouseout="div2.style.display='none';" value="按钮">
<div id="div2">
<p>文字<br>文字2</p>
</div>
</body>
</html>
```
- 前言
- 初探 JavaScript 魅力
- JavsScript 是什么
- 第一个 JS 特效:鼠标提示框
- 网页换肤和 if 判断
- 函数传参
- 循环 while 和 for
- 导航栏选项卡
- JS 简易日历
- JavaScript 基础
- JavaScript 组成
- 变量类型
- 变量类型转换
- 变量的作用域和闭包
- 命名规范
- 运算符
- 程序流程控制
- JSON
- 深入 JavaScript
- 函数返回值
- 函数传参与行间样式
- 数组基础操作
- 定时器的使用
- 定时器的作用
- 数码时钟
- Date 对象其它方法
- 延时提示框
- 无缝滚动
- DOM基础应用
- DOM 基础
- DOM 节点
- 操作元素属性
- DOM 元素灵活查找
- DOM 操作应用
- 创建、插入和删除元素
- 文档碎片
- DOM操作应用高级
- 表格标签
- 表格应用
- 表单应用
- JS 运动基础
- 运动基础
- 运动框架及应用
- 缓冲运动
- 运动的停止条件
- JS 运动应用
- 多物体运动框架
- 任意值运动框架
- 仿 Flash 图片展示
- JS 运动中级
- 链式运动框架
- 完美运动框架
- 运动框架总结
- 运动框架应用
- JS事件基础
- Event 对象和事件
- 鼠标事件
- 键盘事件
- JS 事件中级
- 默认事件
- 拖拽
- JS 事件高级应用
- 事件绑定
- 高级拖拽
- 自定义滚动条
- Ajax 基础
- Ajax 是什么
- 使用 Ajax
- Ajax 原理
- Ajax 中级
- 编写 Ajax
- Ajax 数据
- JS 面对对象基础
- 面对对象是什么
- JS 中的面对对象
- 第一个面对对象的程序
- 工厂方式
- 原型:Prototype
- 面对对象编程方式
- JS 面对对象实例
- 面对对象的选项卡
- JS 面对对象高级
- Json 方式的面向对象
- 拖拽和继承
- 使用继承
- 系统对象
- BOM 应用
- BOM 基础
- 尺寸及坐标
- 常用方法和事件
- COOKIE 基础与应用
- 什么是 cookie
- 使用 cookie
- JS 中的正则表达式
- 正则表达式基础
- 字符串与正则配合
- 字符串
- 量词
- 常用正则例子
- JS Template 模板引擎
- 特性
- 语法
- 实例
- 表达式和运算符分类
- 主要表达式
- 左表达式
- 自增和自减
- 一元运算符
- 算术运算符
- 关系运算符
- 相等运算符
- 位移运算符
- 二进制位运算符
- 二元逻辑运算符
- 条件(三元)运算符
- 赋值运算符