css3 transition animation nick

来源:http://www.cnblogs.com/puyongsong/archive/2016/11/05/6032941.html
-Advertisement-
Play Games

時光轉眼即逝,又到周六了,今天寫點某部分人看不起的css玩玩! 轉換 轉換屬性transform: 瀏覽器首碼: -webkit-transform;-o-transform;-moz-transform;-ms-transform; 取值: none : 預設值,沒有轉換操作 transform- ...


時光轉眼即逝,又到周六了,今天寫點某部分人看不起的css玩玩!

轉換

轉換屬性transform:

瀏覽器首碼:
-webkit-transform;-o-transform;-moz-transform;-ms-transform;
取值:
none : 預設值,沒有轉換操作
transform-function:一組轉換函數
transform:函數1() 函數2() ......;

轉換的原點transform-origin

在不指定原點前提前,預設原點為元素的中心處
取值:數值/百分比/關鍵字
一個值:所有軸位置
兩個值:表示x軸和y軸
三個值:表示x軸,y軸,z軸

2D轉換

2D位移

函數:translate()
取值:
translate(x) : 只做x軸(橫向)移動
translate(x,y) : 做x軸和y軸的移動
方向:看符號

+ 向右、向下
- 向左、向上

註意:

取值可以為數值或百分比、負數
單向位移函數:
translateX(x) : 只做x軸移動
translateY(y) : 只做y軸移動

縮放

改變元素的尺寸
函數:scale()
取值:
1個值:表示第一個值和第二個值是相等的
2個值:第一個 x 第二個 y
單向縮放函數:
scaleX(x),scaleY(y)
取值:
預設值 為1
縮小:0-1之間的小數
放大:大於1的數值

 旋轉

函數:rotate()
取值:rotate(ndeg)
n : 具體角度值
n為正, 則順時針旋轉
n為負, 則逆時針旋轉

 傾斜

函數:skew()
skewx() --x軸傾斜
skewy() --y軸傾斜

過渡 

過渡屬性

作用:指定元素在哪些css屬性上的變化會產生過渡的效果(必須的)
屬性:transition-property
取值:none | all | property
eg:transition-property:background;
eg:transition-property:background,width,height;

過渡時間

作用:指定過渡效果在多長時間內完成。
註意:可以以 s | ms 為單位.該屬性不能省略,一旦省略則沒有過渡效果
屬性:transition-duration
取值:s|ms
eg:transition-duration:5s;
eg:transition-duration:5s,1s,1s;

過渡時間速度曲線函數

作用:定義整個過渡效果的速率。比如 先快後慢,還是 先慢後快,或者還是勻速
屬性:transition-timing-function
取值:預定義值或貝塞爾曲線
ease : 預設值,慢速開始,快速變快,以慢速結束
linear:勻速
ease-in:慢速開始,加速效果
ease-out:慢速結束(快速開始),減速效果
ease-in-out:慢速開始和結束,中間先加後減
eg:transition-timing-function:linear;

過渡延遲

作用:激發過渡操作後,等待多長時間後才開始執行過渡效果
屬性:transition-delay
取值:以 s | ms為單位的時間
eg:transition-delay:5s;

簡寫過渡屬性  transition

屬性:transition
取值:以空格分開的值列表
property duration timing-function delay;
eg:transition:background 1s linear 0s;
transition:background 1s;
多個過渡效果:
transition : background 1s linear 0s,
color 2s linear 0s,
border-radius 3s linear 1s;

動畫

動畫的詳細參數去看w3c吧!

這裡就提下註意的地方:

@keyframes語法:(單獨寫,在選擇器外,style內)
@keyframes name{
from {css樣式;}
percent{css樣式;}
to {css樣式;}
}

animation語法:(寫在選擇器內)
animation:name duration timing-function delay iteration-count direction;

animation-fill-mode

(ie10+)屬性規定動畫在播放之前或之後,其動畫效果是否可見。

none --不改變預設行為。

forwards-- 當動畫完成後,保持最後一個屬性值(在最後一個關鍵幀中定義)。

backwards --在 animation-delay 所指定的一段時間內,在動畫顯示之前,應用開始屬性值 (在第一個關鍵幀中定義)。

both --向前和向後填充模式都被應用。

 說的也差不多了,直接上代碼!

<!DOCTYPE html>
<html>
 <head>
  <title>css3 transition animation nick </title>
  <meta charset="utf-8" />
  <style>
      body{background-color:#b2b2b2;}
      /*2d*/
      #d2{
          width:500px;
          margin:auto;
      }
      div[id^='img']{width:300px;height:300px;background-color:yellow;}
      #nav{margin:10px auto;}
      #nav a{
          padding:3px 10px;
          background:#666;
          color:#fff;
          font-weight:bold;
          border-radius:5px;
      }
      #showImg{
          width:400px;
          height:350px;
          border:1px solid #333;
          text-align:center;
          margin-top:20px;
          /*相對定位*/
          position:relative;
      }
      #showImg div{
          display:none;
      }
      #showImg div:target{
          display:block;
      }

      #showImg #img1:target{
          display:block;
          /*絕對定位*/
          position:absolute;
          top:0px;
          -webkit-animation:sliderLeft 3s linear;
      }
      /*定義動畫*/
      @-webkit-keyframes sliderLeft{
          from{
              left:-350px;
          }
          to{
              left:0px;
          }
      }

      #showImg #img2:target{
          -webkit-animation:sliderBottom 3s linear;
          animation-fill-mode:forwards ;
      }
      @-webkit-keyframes sliderBottom{
          from{
              transform:skew(0deg,0deg);
          }
          to{
              transform:skew(45deg,30deg);
          }
      }
      #showImg #img3:target{
          -webkit-animation:scaleIn 3s linear 0s;
      }
      @-webkit-keyframes scaleIn {
          from{
              transform:scale(0);
          }
          to{
              transform:scale(1);
          }
      }

      #showImg #img4:target{
          -webkit-animation:rotateScale 3s linear;
      }
      @-webkit-keyframes rotateScale{
          from{
              transform:scale(0) rotate(0deg);
          }
          to{
              transform:scale(1) rotate(360deg);
          }
      }
      /*3d*/
      p{text-align:center}
    #stage{
        width:800px;
        height:500px;
        border-radius:50%;
        margin:0 auto;
        border:1px solid blue;
        position:relative;
        -webkit-perspective:1200px;
        /*被嵌套元素的顯示模式*/
        transform-style:preserve-3d;
        transform:perspective(1200px) rotatex(0deg) rotatey(0deg);
        background-color: #4cd964;
    }
    #stage div{
        width:100px;
        height:100px;
        line-height:100px;
        border-radius:50%;
        background:red;
        position:absolute;
        left:350px;
        top:270px;
        text-align:center;
        font-size:26px;
        color:yellowgreen;
    }
    #stage div:nth-child(1){
        transform:rotatey(0deg) translatez(200px);
    }

    #stage div:nth-child(2){
        transform:rotatey(60deg) translatez(200px);
    }

    #stage div:nth-child(3){
        transform:rotatey(120deg) translatez(200px);
    }

    #stage div:nth-child(4){
        transform:rotatey(180deg) translatez(200px);
    }

    #stage div:nth-child(5){
        transform:rotatey(240deg) translatez(200px);
    }

    #stage div:nth-child(6){
        transform:rotatey(300deg) translatez(200px);
    }
@keyframes rotate3d {
    from{
        transform:perspective(1000px) rotatex(0deg) rotatey(0deg) rotatez(0deg);
    }
    to{
        transform:perspective(1000px) rotatex(-180deg) rotatey(-180deg) rotatez(180deg);
    }
}
      #stage:hover{
          animation:rotate3d 5s linear infinite;
          /*animation-fill-mode:forwards ;*/
      }
  </style>
 </head>
 <body>
 <!--2d-->
 <div id="d2">
     <div id="showImg">
         <div id="img1"></div>
         <div id="img2"></div>
         <div id="img3"></div>
         <div id="img4"></div>
     </div>
     <div id="nav">
         <a href="#img1">2D位移動畫</a>
         <a href="#img2">2D傾斜動畫</a>
         <a href="#img3">2D縮放動畫</a>
         <a href="#img4">2D縮放旋轉動畫</a>
     </div>
 </div>

 <!--3d-->
 <p>滑鼠懸停預覽3d效果</p>
    <div id="stage">
        <div>WEB</div>
        <div>NICK</div>
        <div>WEB</div>
        <div>NICK</div>
        <div>WEB</div>
        <div>NICK</div>
    </div>
 </body>
</html>
View Code

最後展示下效果!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 寫的比較弱,只能處理50道以內的選項為A-D的單選題,正確答案自己輸進去,必須要大寫,不能有空格和逗號,提交會出分,錯誤的題號和答案會console.log()出來. <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></ti ...
  • 這是我在面試大公司時碰到的一個筆試題,當時自己雲里霧裡的胡寫了一番,回頭也曾思考過,最終沒實現也就不了了之了。 昨天看到有網友說面試中也碰到過這個問題,我就重新思考了這個問題的實現方法。 對於想進大公司的童鞋,我想多說兩句,基礎知識真的很關鍵。平時在工作中也深刻體會到,沒有扎實的基礎知識,簡單問題容 ...
  • 目前來看,團隊內部前端項目已全面實施組件化開發。組件化的好處太多,如:按需載入、可復用、易維護、可擴展、少挖坑、不改組件代碼直接切成伺服器端渲染(如 "Nuclear" 組件化可以做到,大家叫同構)... 怎麼做到這麼強大的優勢,來回憶下以前見過的坑,或者現有項目里的坑。 CSS層疊樣式?保佑不要污 ...
  • 1. 使用require.js的意義 (1)實現JS文件的非同步載入,避免網頁因為載入JS文件緩慢造成網頁未響應 (2)管理模塊之間的依賴性,便於代碼的編寫和維護。頁面中只需要引入require.js和main.js,其餘的js文件全部通過require.js管理。 2. 獲取require.js r ...
  • 本文版權歸博客園和作者本人共同所有,轉載和爬蟲請註明原文地址。 寫在前面 好多做web開發的朋友,在學習數據結構和演算法時可能比較討厭C和C++,上學的時候寫過的也忘得差不多了,更別提沒寫過的了。但幸運的是,你會JavaScript啊。我想說學好數據結構和基本演算法並非是要我們必須要去書寫,演算法的工作有 ...
  • 總結一下自己在寫這個需求遇到的問題,相信大家應該是經常遇到的。即要求滾輪滾動到指定的位置。先看下基本的解決方案。 1.給鏈接a加個#的方式來實現跳轉。(錨點方法)這裡直接貼下代碼: html頁面: css樣式: 該錨點法,不需要任何的js代碼,即可實現跳轉的方法。缺點:點擊鏈接url發生變化,刷新的 ...
  • 一、Redux介紹 Redux的設計思想很簡單,就兩句話: 二、Redux基本概念和API Store Store就是保存數據(state)的地方,整個應用只能有一個Store。Redux通過createStore來生成store。 State Store對象包含所有State,某一時刻的數據集合就 ...
  • 在WebGL場景中導入多個Babylon骨骼模型,在區域網用WebSocket實現多用戶交互控制。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...