---
# System prepended metadata

title: 動畫互動網頁特效入門 | 學習歷程筆記

---

# 動畫互動網頁特效入門 | 學習歷程筆記
### 第1章
### 第2章
#### 單元6 CSS定位與排列實作
* 標題背景漸層陰影設定
> * 用linear-gradient製造陰影效果
> * 寬度設定100%，此寬度不包含padding跟border
> * 用border-box來把border以內的寬度包含進去
```
.top .name {
  background: linear-gradient(transparent 0%, black 100%);
  width: 100%;
  box-sizing: border-box;
  padding-top: 30px;
  padding-bottom: 15px;
}
```
* [CollorZilla](https://www.colorzilla.com/)(可以隨意吸取顏色的工具)

#### 單元7 flexbox排版入門
* justify(主軸線)、align(副軸線)會根據現在box的排列方向而定義
> ex.如果box的排列方向是水平排列，那此時的justify(主軸線)就會是水平線，align(副軸線)就是垂直的
* 用flex設定數值來決定比例
* .flexrow>div，用">"指定下一層的div，如果是空格則表示裡面所有的div
* flex-grow: 0 控制最大值在指定數值，不會因為螢幕加大而隨意增加 
* emmet語法: 大括號中放"$"，tab展開就有編號了
```
.item*3{$}  按tab鍵展開
 --> .item 1
     .item 2
     .item 3
```
#### 單元8 撰寫一份自己的網頁履歷
* 選取換行 清單排左邊，選取尾端，按ctrl+D
* CSS初步調整: 把版面放到正確的位置，並且給它適合的內距
* 用flex設定數值來決定版面左右的比例
* 複寫區寫在body下面，把原本的樣式重新定義
* 用nth-child(數字)選取特定項目，ex.針對ul下的某li寫css時可用，就不用另外再寫class了

#### 單元11 sass迴圈與內容
* sass裡rgba可以直接給顏色，不一定要用數字ex.rgba(black,0)
* sass編號在物件後面加"$字號，ex.present$*50 就會從1到50號編號
* 用#{ } 把變數轉成字串 ex.present#{$i} 就會代換成i跑過的數字
* $color裡面陣列用小括號()

#### 單元12 CSS動畫基礎與滑鼠互動
* 重複樣式的話可以用@mixin, 另外mixin也可以再加一個mixin
```
@mixin hair($w,$h)
+bdrsrect($w,$h)  //原本就已經寫好的

```
* sass 裡的margin-left:可寫成 margin: left:
```
margin: 
  left: 50px
  top: 40px
```
* box-shadow: inset 可以讓陰影在物件內部
* h1有預設的外距，不想要預設值時可自訂margin:0
* 可以單獨設定某屬性的transition秒數，用逗點隔開，在寫屬性
```
.body
  transition: 0.5s, background-color 0.4s 0.1s
  //單獨設定background-color，注意後面不用冒號
```

#### 單元13 CSS製作影格動畫
* animation-iteration-count 動畫執行次數
* animation-direction 動畫執行方向 alternate: 來回執行
* @mixin 也可以寫成等於"="

#### 單元14 在網頁寫一座美麗城市 Part1 - 前置準備
* 白天夜晚的切換，將漸層背景的高度設定超過100%，才透過position控制顯現的部分
* 前置準備:
1. 設定顏色變數
2. 設定字體
3. 設定常用mixin - 大小圓角、置中、絕對定位
4. 設定input(type="checkbox")
* 把input包在lebel裡面，不管點擊label哪裡都可以被勾選起來
* input:checked+oooo, 用加號選擇勾選起來後要變動的東西
```
input:checked+h3
*   color: red  //input被勾起來後，h3會變紅色
```
#### 單元15 在網頁寫一座美麗城市 Part2
* [class^='house'] class開頭名稱一樣去做設定ex.house1、house2、house3
* "*" 米字號選取的不包括偽元素，要另外再寫
```
*,*:before,*:after
  border: 2px solid black
```
* 偽元素的background-color用inherit 直接繼承外部顏色
* 漸層適用background，不適用background-color

#### 單16 在網頁寫一座美麗城市 Part3
* 動畫秒數用負的就可以提早開始，中間不會有停滯時間，動畫比較流暢

### 第3章
#### 單元4 陣列操作與迴圈
* console.clear() 重新整理的時候
> * 課後練習: 將0-100轉成五顆星(0-5)

#### 單元5 字串的處理
* Regex Match 正規表達式 (測試網站:regex 101)
* 分割 .spilt("用甚麼分割") ex.bookdata.spilt(";") 代表用分號分割bookdata裡面的東西
* parseInt 把字串轉為數字
* .slice() 切割 (切在前面) 
* .replace("原本的東西","要取代的東西")，但是只會取代第一個
* 正規表達式: /人/g 所有"人"都會被選起來
* 正規表達式: /(人)/g    $1代表第一個( ) 
* 正規表達式: (.?*) 所有符合的任意東西
* 正規表達式: \n 換行
* 正規表達式: 遇到特殊字元用反斜線\  ex. /<><\/>/
* .trim() 去掉前後的空白
* ex6  用` ` 榮許多行字串的存在

#### 單元6 函數模組化應用
* 函數function 裡面的變數var只會在函數裡面作用，外面抓不到
* 函數要把結果用return

#### 單元7 時間函數-從靜態到動態
* setTimeout(函數,毫秒)
* 把函數寫在setTimeout裡面，函數作為引數用不加"()"
* clearTimeout()/claerInterval() 可用來取消setTimeout/setInterval()
* RequestAnimationFrame: setTimeout+系統優化觸發時間
* 可以把沒有名字的function放在setTimeout裡面
* 定義完function不會自動執行，要手動再定義一次
* 長寬用%定義的話，若是母元素更動的話，也會跟著跟動，就不用一個個改了
* animation : alternate 雙向動畫

#### 單元8 Jquery 操作元素
* 選擇 ul li(空一格代表裡面的東西)/ div>a用">"(代表直屬的東西)
* 選擇 .title.small(沒空格代表都要) .title .small(有空格代表選tall裡面的small)
* odd(奇數) even(偶數)
* 週期性選擇 nth-child(7n+3) 每7格的第三個
* $("img:first") 選第一張圖 $("img:last") 選最後一張圖
* .hide(duration,complete) 可以隱藏東西
* 
