### 第一個 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 模板引擎
- 特性
- 語法
- 實例
- 表達式和運算符分類
- 主要表達式
- 左表達式
- 自增和自減
- 一元運算符
- 算術運算符
- 關系運算符
- 相等運算符
- 位移運算符
- 二進制位運算符
- 二元邏輯運算符
- 條件(三元)運算符
- 賦值運算符