跳到主要內容

簡單玩弄 transform & transition

CSS3 常用到動畫效果,最重要就是跟 transform & transition 做好朋友,底下範例相信能對 transition & transform 能有基本的認識及了解才對。

HTML:
<div id="wrapper">

<div class="paneNest">
  <div class="pane">
    <div class="face front">
      Big
    </div>
    <div class="face back">
      Small
    </div>
  </div>
</div>
</div>

CSS:

*{
  -webkit-transition: all 10s;  // 過度效果及所需時間設定 all 指全部效果都處理
  -webkit-backface-visibility:hidden;
}

#wrapper {
  width:564px;
  height:164px;
  position:absolute;
  left:60%;
  margin-left:-282px;
  top:5%;
}

.paneNest {
  display:inline-block;
}

.paneNest:nth-child(odd):hover .pane {
  -webkit-transform: rotatex(-720deg) rotatey(-720deg) rotatez(-720deg)  scale(0.5,0.5); // transform 可以針對 rotateX rotateY rotateZ 三維做出不同旋轉效果,sacle 則為過度後呈現的大小,0.5是一半,這裡只有對 nth-child(odd) 也就是單數 div 做處理,如果想要兩張圖一直換,那就加上處理
nth-child(even) 就行囉
}

.pane{
  width:150px;
  margin:40px;
  height:150px;
  border-radius:30px;
  text-align:center;
  line-height:150px;
  transform-style:preserve-3d;  // 這裡是保留3D位置,預設 flat 是不保留。
}

.face {
  color:white;
  font-family:verdana;
  text-transform:uppercase;
  text-align:center;
  font-weight:900;
  font-size:50px;
  border-radius:30px;
  width:100%;
  height:100%;
}

.front {
  background:#61005e;
  -webkit-transform:translatez(1px);
}

.back {
  background:#c98600;
  -webkit-transform:translatez(-1px) translatey(-100%) rotatey(180deg) rotatez(180deg); // rotateY & rotatey 大小寫沒差別
}




留言

這個網誌中的熱門文章

C# 中 List 複製內容到另一個 List 的幾種方法

簡單又實用 ^ ^ * 第一種透過 .ToList( ) 方法:  List<string> List1 = new List<string>();  List<string> List2 = new List<string>();  List1.Add("A");  List1.Add("B");  List1.Add("C");  List1.Add("D"); List2 = List1.ToList( ); * 第二種方式在建立物件時複製前一個 List  List<string> List1 = new List<string>();  List1.Add("A");  List1.Add("B");  List1.Add("C");  List1.Add("D"); List<string> List2 = new List<string>(List1); * 第三種方法新的List 中使用 AddRange( ) 方法  List<string> List1 = new List<string>();  List<string> List2 = new List<string>();  List1.Add("A");  List1.Add("B");  List1.Add("C");  List1.Add("D"); List2.AddRange(List1); 另可使用 List1.GetRange(Start, End) 來複製不固定大小(但不包含End)的內容

無效的回傳或回呼引數。已在組態中使用 或在網頁中使用 <%@ Page EnableEventValidation="true" %> 啟用事件驗證

寫手機網頁 使用 Client 端的 jquery mobile 時 button 都會比較長,但改用 asp::Button 時發現按鈕大小卻變了,W3C 建議使用 jquery mobile Button 時,儘量使用<a href="#" data-role="button" > ,因此改用 asp::LinkButton 後果然解決了 Button 長度問題,只可惜按下去後,依然有點淚流滿面如下。後來拜求 google 大大,找到了原因及解法如下: 開啓了資料回傳安全驗證功能(EnableEventValidation 為 true),導致錯誤訊息產生。如果必須要驗證資料,則必須使用 ClientScriptManager.RegisterForEventValidation 註冊控制項或直接在頁面.aspx上端 <%Page ... EnableEventValidation = "false"> ,那如果全部頁面都不想驗證,那請在 web.config 下找到 <configuration>      <system.web>       <pages  enableEventValidation ="false" >        ....       </page>       .... </configuration> 嗯  博大精深  ^^ 收工回家去............................

JQUERY 中使用 val( ) 或 text( ) 來改變內容

就字眼看來兩者差別不太... 簡單的說 TextBox 利用 val( ),而其它的控制項元件則用 text( ) 底下範例可跑跑看或ID 對調實驗,很快就看出差別了... HTML: <input type="text" id="txtinupt" value="TEXTBOX"/> <label id="lblid">LABEL</label> <button onclick="TestFunc()">OK</button> JS: function TestFunc(){   $('#lblid').text("12345")   $('#txtinput').val("99999");   $('#lblid').focus();   console.log('Function End') }