6.動畫

来源:https://www.cnblogs.com/lanshanxiao/archive/2020/05/24/12952714.html
-Advertisement-
Play Games

# 6.動畫 - 1. transition 過渡 transition-property:all;//監聽屬性 transition-duration:1s;//過渡時間 transition-timing-function:linear;//運動速率 transition-delay:1s;// ...


# 6.動畫   - 1. transition 過渡     transition-property:all;//監聽屬性     transition-duration:1s;//過渡時間     transition-timing-function:linear;//運動速率     transition-delay:1s;//過渡延遲時間   ```html <style>     div{         width:100px;         height:100px;         background-color:#008c8c;         transition:width 2s linear 1s;     }       div:hover{         width:200px;         height:200px;     } </style> <div></div> ```       transition-timing-function:cubic-bezier(x1, y1, x2, y2);//x值必須(0,1)   - 2. animation     animation-name//名稱     animation-duration//執行時間     animation-timing-function//運動速率     animation-delay//延遲時間     animation-iteration-count:infinite;//執行無限次,預設值為1     animation-direction:reverse;//反向運動,預設值normal     animation-play-state:paused;//不推薦使用     animation-fill-mode:none | forwards | backwards | both;//forwards:在動畫運動結束後,保持動畫最後一幀的狀態;backwards:在動畫運動開始前,保持動畫第一幀的狀態;both:在動畫結束胡,保持動畫最後一幀的狀態, 在動畫開始前,保持動畫第一幀的狀態;   ```html <style> @keyframes run{     0%{         left:0;         top:0;     }     25%{         left:100px;         top:0;     }     50%{         left:0;         top:100px;     }     75%{         left:0;         top:0;     }     100%{         left:0;         top:0;     } }   div{     position:absolute;     width:100px;     height:100px;     background-color:red;     animation:run 4s; } </style> ```   - 3. step     steps(1, end); === step-end;     steps(1, start); === step-start;   ```html <style>     @keyframes change-color{         0% {             background-color:red;         }         25% {             background-color:green;         }         50% {             background-color:blue;         }         75% {             background-color:black;         }         100% {             background-color:#fff;         }     }       div{         width:100px;         height:100px;         background-color:red;         animation:change-color 4s steps(1, end);/*steps(幾步執行,)             start:保留下一幀狀態,直到這段動畫時間結束             end:保留當前幀狀態,直到這段動畫時間結束         */     } </style> ```       - 4. transform     rotate:         transform:rotate(0deg);//旋轉度數         taransform-origin:0 0;//旋轉中心點           transform:rotateX(0deg);//圍繞X軸旋轉         transform:rotateY(0deg);//圍繞Y軸旋轉         transform:rotateZ(0deg);//圍繞Z軸旋轉           transform:rotate3d(x,y,z,angle);//圍繞自定義矢量旋轉     scale: 伸縮的是此元素的變化坐標軸的刻度(若x為2,則原來x軸的100被拉伸為200的長度,但是現在100的刻度代表200的長度。就像皮筋一樣上面標上刻度100,被拉長了2倍,但是皮筋上的刻度未變,但現在100刻度代表了200的長度一樣。所以再對x軸進行長度操作如平移100刻度,實際上平移了200的長度)         scale(x, y);//x.橫坐標伸縮的倍數;y.縱坐標伸縮的倍數;         scalex();         scaley();         scalez();         scale3d();           可以疊加操作             transform:scale(.5, .5) scale(3, 3);//實際操作倍數0.5*3     skew: 傾斜         transform:skew(xdeg, ydeg)             不僅傾斜了,坐標軸刻度也被拉伸了,因為傾斜過後,元素高度保持不變               傾斜的是坐標軸而不是元素本身,若設置了xdeg那麼y軸角度變化,若設置了ydeg那麼x軸角度發生變化。               xdeg:表示x軸扭曲度             x扭曲 = y旋轉+y伸縮             x取值為正,x軸不動,y軸朝著x軸正方向傾斜x度數             x取值為負,x軸不動,y軸朝著x軸負方向傾斜x度數               ydeg:表示x軸扭曲度             y扭曲 = x旋轉+x伸縮             y取值為正,y軸不動,x軸朝著y軸正方向傾斜x度數             y取值為負,y軸不動,x軸朝著y軸負方向傾斜y度數       translate:平移         transform:translate(xpx,ypx);//平移xpx和ypx         transform:translatex(xpx);         transform:translatey(ypx);         transform:translatez(zpx);           元素居中,不知道元素的寬度:             left:50%;             transform:translatex(-50%);          用於父元素的屬性      perspective:景深(按照投影理解,比較好理解)         取值1到正無窮px,預設值為0     perspective-origin: 300px 200px;//從元素左上角開始計算        用於自身元素的屬性     transform:perspective(800px);       用於父元素屬性         transform-style:preserve-3d;//渲染3d效果          用於自身元素的屬性:         backface-visibility:visible | hidden;//背面元素是否可見   ```html <!-- 3D旋轉圖片牆 --> <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Document</title>     <style>         *{             margin:0;             padding:0;         }           :root,         body{             height:100%;                      }           body{             perspective:2000px;             transform-style:preserve-3d;         }           @keyframes run{             0%{                 transform:translate(-50%, -50%) rotatey(0deg);             }             100%{                 transform:translate(-50%, -50%) rotatey(360deg);             }         }           .wrapper{             position: absolute;             left:calc(50%);             top:calc(50%);             transform:translate(-50%, -50%);             width:300px;             height:300px;             transform-style:preserve-3d;             animation:run 10s infinite;         }           .image{             position:absolute;             background-color:#fff;             width:300px;             height:300px;         }         .image:nth-of-type(1){             transform:rotatey(45deg) translateZ(800px);             background-image:url(1.jpg);         }         .image:nth-of-type(2){             transform:rotatey(90deg) translateZ(800px);             background-image:url(2.jpg);         }         .image:nth-of-type(3){             transform:rotatey(135deg) translateZ(800px);             background-image:url(3.jpg);         }         .image:nth-of-type(4){             transform:rotatey(180deg) translateZ(800px);             background-image:url(4.jpg);         }         .image:nth-of-type(5){             transform:rotatey(225deg) translateZ(800px);             background-image:url(5.jpg);         }         .image:nth-of-type(6){             transform:rotatey(270deg) translateZ(800px);             background-image:url(6.jpg);         }         .image:nth-of-type(7){             transform:rotatey(315deg) translateZ(800px);             background-image:url(7.jpg);         }         .image:nth-of-type(8){             transform:rotatey(360deg) translateZ(800px);             background-image:url(8.jpg);         }     </style> </head> <body>     <div class="wrapper">         <div class="image"></div>         <div class="image"></div>         <div class="image"></div>         <div class="image"></div>         <div class="image"></div>         <div class="image"></div>         <div class="image"></div>         <div class="image"></div>     </div>     <script>         document.body.onmousemove = function(e){             this.style.perspectiveOrigin = "" + e.pageX + "px " + e.pageY + "px";         }     </script> </body> </html> ```   以上是markdown格式的筆記
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 基本數據檢索:單表 複雜數據檢索:多表:連接查詢、子查詢(嵌套查詢)、集合運算 基本select語句: select <檢索欄位> from <表> where <檢索條件> group by<分類> having<檢索條件> order by <排序欄位> 操縱列: 1.輸出所有列:select ...
  • 事務的使用方式 事務的錯誤處理 WATCH命令 生存時間 緩存策略 Redis中的事務(transaction)是一組命令的集合。事務同命令一樣都是Redis的最小執行單位,一個事務中的命令要麼都執行,要麼都不執行。 事務的原理是先將屬於一個事務的命令發送給Redis,然後再讓Redis依次執行這些 ...
  • 摘要 本文旨在瞭解MySQL InnoDB引擎如何支持事務的隔離級別。 文章主要內容分兩個部分。 第一部分闡述資料庫的併發問題以及為之產生的ANSI SQL 標準隔離級別。 第二部分根據 MySQL 官方文檔解釋 InnoDB 是如何支持這些隔離級別的。 資料庫事務的併發問題 ANSI SQL 隔離 ...
  • 從 Gradle 角度看,Android 插件是由 Google 的 Android 團隊開發的一個第三方插件。 從 Android 的角度看,Android 插件是基於 Gradle 構建的,是和 Android studio 完美搭配的新一代構建系統。 ...
  • 目錄:andorid jar/庫源碼解析 Apktool.jar: 作用: 1、用於對APK文件進行解包,成可以讀的smali和xml,png等資源文件。 2、同時,把解碼之後的數據,重新打包成APK文件。 慄子: 使用命令的方式使用 1、apktool d xxx.apk // 解碼 apk文件 ...
  • 一,JavaScript是什麼? 1,JavaScript簡稱:js,是一種瀏覽器解釋型語言,嵌套在HTML文件中交給瀏覽器解釋執行。主要用來實現網頁的動態效果,用戶交互及前後端的數據傳輸等。 2,JavaScript 組成 1,核心語法 - ECMAScript (ES5-ES6) 規範了Java ...
  • 在開發大型Web應用或複雜交互的網站,不免會遇到一些頁面性能瓶頸的問題。本篇介紹一下如何利用Chrome的性能面板分析網站的性能瓶頸,應該對你有所幫助。 註意,為了減少一些Chrome插件對性能評估產生噪音,最好打開隱身模式訪問頁面進行測試。 將Chrome切換到隱身模式,然後打開該頁面進行測試: ...
  • 在組件特定時期,觸發的條件,統稱為生命周期; + 組件生命周期分為三部分: 組件創建階段 :組件創建階段的生命周期函數,有一個顯著的特點:創建階段的生命周期函數,組件一生只執行一次; componentWillMount:組件將要被掛載,此時還沒有開始渲染虛擬dom render:第一次開始渲染真正 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...