# 動畫互動網頁特效入門 | 學習歷程筆記 ### 第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) 可以隱藏東西 *