返回
Featured image of post CSS基礎複習-微互動篇

CSS基礎複習-微互動篇

滑鼠與視窗的小互動,可能並非都是Javascript喔

可以使用偽CSS來簡單製作小動畫,最常見到的就是 :hover 在這個


Transform - 變換

提醒:原先的區塊大小( 寬高所定義的值 ),一樣會被保留。

translate()

某些思維和 CSS 另一個屬性 position 的感覺很像,但不同的是 position不會保留寬高。
以區塊左上角為中心

div {
    transform: translate(-50%, -50%)
    /* 區塊本身的寬高比 */
}

rotate()

旋轉角度

div {
    transform: rotate(20deg)
}

scale()

縮放,以區塊中心為中心

div {
    transform: scale(10, 10)
    /* 縮放比 */
}

Transitions - 過度

transition

div {
    width:10px
    transition: width 2s;
    /* 需要過度的東西 */
}
div:hover{
    width: 100px;
}

transition-delay

過度事件觸發後的時間

div {
    width:10px
    transition: width 2s;
    transition-delay: 2s;
}
div:hover{
    width: 100px;
}

transition-duration

過度需要的時間

div {
    width:10px
    transition: width 2s;
}
div:hover{
    width: 100px;
}

transition-timing-function

  • ease
  • linear
  • ease-in
  • ease-out
  • ease-in-out
div {
    width:10px
    transition: width 2s;
    transition-timing-function: linear;
}
div:hover{
    width: 100px;
}

Animations - 動畫

@keyframes

宣告影格

@keyframes example {
  0%   { background-color:red; }
  25%  { background-color:yellow; }
  50%  { background-color:blue; }
  75%  { background-color:green; }
  100% { background-color:red; }
}

animation-name

引用影格使用的名稱

@keyframes example {
  0%   { background-color:red; }
  25%  { background-color:yellow; }
  50%  { background-color:blue; }
  75%  { background-color:green; }
  100% { background-color:red; }
}
div {
  width: 100px;
  height: 100px;
  background-color: red; 
  animation-name: example; /* keyframe 名稱 */
  animation-duration: 4s; /* 運行時間 */
}

animation-duration

影格運行時間

animation-delay

影格執行觸發時等待時間

animation-iteration-count

運行影格次數

animation-direction

  • normal - 向前播放(預設)
  • reverse - 相反播放
div {
  width: 100px;
  height: 100px;
  position: relative;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
  animation-direction: reverse;
}

animation-timing-function

數率方程式

#div1 {animation-timing-function: linear;}
#div2 {animation-timing-function: ease;}
#div3 {animation-timing-function: ease-in;}
#div4 {animation-timing-function: ease-out;}
#div5 {animation-timing-function: ease-in-out;}

animation-fill-mode

影格運行完的樣子

  • none - 預設運行完後變回原設定
  • forwards - 運行到100%的結果
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus