萬盛學電腦網

 萬盛學電腦網 >> 網頁制作 >> DivCSS教程 >> 舉例詳解CSS3中的Transition

舉例詳解CSS3中的Transition

   1.會伸縮的搜索表單

  常在 sf.gg 混的人都知道,它的頂部導航欄是這樣的:

2015715175542401.png (600×37)

  當輸入框獲得焦點就會變成這樣的:

2015715175644718.png (600×40)

  利用 CSS3 的 Transition 屬性,我們可以簡單做出一個類似的搜索表單出來:

  HTML 標記:

  XML/HTML Code復制內容到剪貼板

  1. <header>
  2. <form action="#" method="post" class="searchForm">
  3. <label for="search">search</label>
  4. <input type="search" id="search" name="search" placeholder="search">
  5. </form>
  6. </header>

 

  CSS 樣式:

  CSS Code復制內容到剪貼板

  *{

  margin: 0;

  padding: 0;

  }

  header{

  font-family: helvetica,arial,sans-serif;

  display: block;

  overflow: hidden;

  width:500px;

  margin: 15px;

  border-radius: 3px;

  background-color: #ddd;

  }

  form.searchForm{

  /*包含label和input的容器*/

  width: 200px;

  margin: 5px;

  padding: 5px;

  }

  form.searchForm input{

  width: 90px;

  padding: 2px 0 3px 5px;

  outline: none;

  font-size: 1.2em;

  border-color: #eee #ccc #ccc #eee;

  border-radius: 10px;

  /*針對webkit內核的浏覽器的廠商前綴*/

  -webkit-transition:0.5s width;

  }

  form.searchForm input:focus{

  width: 400px; /*如果失去焦點,則縮回原來長度*/

  }

  form.searchForm label{

  display: none; /*標注是必要的,但不用顯示出來*/

  }

  效果圖:

  默認:

2015715175812578.png (519×74)

  獲得焦點:

2015715175840766.png (522×73)

  對於那些可以輸入的控件,大家又俗稱其為 字段。每個表單控件(submit 按鈕除外),都有一個對應的 label 文本元素,用於描述控件代表的數據。所以,一個搜索框就是 一個字段的表單。

  2.CSS3過渡

  示例:

  CSS Code復制內容到剪貼板

  -webkit-transition:0.5s width;

  注意:transition 屬性需要使用帶廠商前綴的形式——這裡示例只帶有Webkit(Chrome / Safari)前綴的屬性。

  CSS3 過渡可以讓 CSS 屬性產生動畫效果。平常被某些事件觸發時變化很突然的樣式,比如鼠標懸停時改變鏈接顏色,使用過渡後會在指定的時間段內逐漸變化。第一條 CSS 規則設定屬性的初始狀態和過渡參數。第二條 CSS 規則設定事件發生時屬性的目標狀態。

  通常,過渡動畫是由用戶鼠標懸停時的 :hover 偽類規則和表單元素獲得焦點時的 :focus 偽類規則觸發的。除此之外,還可以在一個帶類名選擇符的規則中設定新狀態,然後通過 JavaScript(或其他 JS 類庫)為元素添加這個類名來觸發過渡,添加類名的時機可以是鼠標點擊或其它事件發生時。

  有五個過渡屬性:

  transition-property,過渡的 CSS 屬性名,比如 color、 width;

  transition-duration,過渡的持續時間,以秒或毫秒設定,比如 2s、 500ms;

  transition-timing-function,過渡的調速函數,決定動畫效果是否平滑,是先慢後快還

  是先快後慢,比如 ease-in、 ease-out、 ease-in-out 或 linear(默認值);

  transition-delay,過渡開始前的延遲時間,以秒或毫秒設定,比如 1s、 200ms;

  transition,過渡的簡寫屬性,例如 transition:color 2s ease-in 1ms; 。

  注意::很多(並非全部)CSS 屬性都可以通過 transition 屬性來實現動畫效果。

copyright © 萬盛學電腦網 all rights reserved