整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          平滑升級!一文掌握CSS過渡與動畫屬性,讓你的網(wǎng)頁動起來!

          這里是云端源想IT,幫你輕松學(xué)IT”

          嗨~ 今天的你過得還好嗎?

          找一顆屬于你自己的星星吧

          它會給你指引方向

          一直到天明

          - 2024.04.12 -

          在網(wǎng)頁設(shè)計中,動畫效果是吸引用戶眼球的重要手段。CSS動畫中的過渡屬性(transition)和動畫(animation)屬性,就像是設(shè)計師手中的魔法棒,可以讓元素在頁面上動起來,增加視覺吸引力,提升用戶體驗。

          今天,我們就來揭秘這兩個神奇的屬性,看看它們是如何讓網(wǎng)頁變得生動活潑的。



          一、過渡屬性(transition)

          過渡屬性是CSS中的一種基本動畫效果,它可以讓元素的某個屬性在一定的時間內(nèi)平滑地從一個值變化到另一個值。這種變化可以是顏色、大小、位置等任何可以改變的屬性。


          屬性值

          1、transition-property:指定要執(zhí)行過渡的屬性

          • 多個屬性間使用,隔開;
          • 如果所有屬性都需要過渡,則使用all關(guān)鍵字;
          • 大部分屬性都支持過渡效果;
          • 注意過渡時必須是從一個有效數(shù)值向另外一個有效數(shù)值進行過渡;


          2、transition-duration:指定過渡效果的持續(xù)時間

          • 時間單位:s 和 ms(1s=1000ms)


          3、transition-delay:過渡效果的延遲,等待一段時間后在執(zhí)行過渡


          4、transition-timing-function:過渡的時序函數(shù)

          • linear勻速運動
          transition-timing-function: linear;
          • ease 默認(rèn)值,慢速開始,先加速后減速
          transition-timing-function: ease;
          • ease-in 加速運動
          transition-timing-function: ease-in;
          • ease-out 減速運動
          transition-timing-function: ease-out;
          • ease-in-out 先加速后減速
          transition-timing-function: ease-in-out;
          • cubic-bezier()來指定時序函數(shù)
          transition-timing-function: cubic-bezier(0.17, 1.79, 0.68, -0.69);
          • steps()分步執(zhí)行過渡效果,可以設(shè)置第二個值:

          end,在時間結(jié)束時執(zhí)行過渡(默認(rèn)值);start,在時間開始時執(zhí)行過渡

          /* transition-timing-function: steps(2, end); */
          transition-timing-function: steps(2);
          transition-timing-function: steps(2, start);

          5、transition:可以同時設(shè)置過渡相關(guān)的所有屬性

          只有一個要求,如果要寫延遲,則兩個時間中第一個是持續(xù)時間,第二個是延遲時間。


          示例:

          /* transition: margin-left 2s 1s; */
          transition-property: margin-left;
          transition-duration: 2s;
          transition-delay: 1s;

          CSS中的animation屬性是一個功能強大的工具,它允許開發(fā)者通過純CSS的方式創(chuàng)建豐富的動畫效果,從而增強網(wǎng)頁的交互性和視覺吸引力。


          二、動畫(animation)屬性

          動畫(animation)是CSS中的另一種屬性,它比過渡更強大,可以創(chuàng)建更復(fù)雜的動畫效果。動畫允許我們定義關(guān)鍵幀,然后在這些關(guān)鍵幀之間創(chuàng)建平滑的過渡。


          這意味著,我們可以讓元素在一段時間內(nèi)完成一系列的樣式變化,從而創(chuàng)建出更豐富、更生動的動畫效果。



          設(shè)置動畫效果,必須先要設(shè)置一個關(guān)鍵幀,關(guān)鍵幀設(shè)置了動畫執(zhí)行每一個步驟

          @keyframes test {
          from {
          margin-left: 0;
          }
          
          to {
          margin-left: 900px;
          }
          }


          屬性值:

          1、animation-name:此屬性指定要綁定到選擇器的關(guān)鍵幀名稱。關(guān)鍵幀是定義動畫序列的地方,通過@keyframes規(guī)則創(chuàng)建。


          2、animation-duration:定義動畫完成一個周期所需的時間長度,可以設(shè)置成秒(s)或毫秒(ms)。必須明確指定該屬性,因為默認(rèn)值是0,如果設(shè)置為0,則動畫不會播放。


          3、animation-timing-function:指定動畫如何完成一個周期的時間曲線,例如線性、緩動等。這決定了動畫的速度在整個周期內(nèi)是如何變化的。


          4、animation-delay:設(shè)定動畫在開始前延遲的時間,同樣可設(shè)置單位為秒或毫秒。可以用來延遲動畫的開始時間。



          5、animation-iteration-count:確定動畫循環(huán)播放的次數(shù),可以是特定的數(shù)字或者infinite表示無限循環(huán)。

          • infinite 無限執(zhí)行


          6、animation-direction:規(guī)定動畫在每次循環(huán)時是否反向播放,常用的值有normal(正常)和alternate(交替)。

          • normal 從from向to運行,每次都是這樣,默認(rèn)值
          • reverse 從to向from運行,每次都是這樣
          • alternate 從from向to運行,重復(fù)執(zhí)行動畫時反向執(zhí)行
          • alternate-reverse 從to向from運行,重復(fù)執(zhí)行動畫時反向執(zhí)行

          想要快速入門前端開發(fā)嗎?推薦一個前端開發(fā)基礎(chǔ)課程,這個老師講的特別好,零基礎(chǔ)學(xué)習(xí)無壓力,知識點結(jié)合代碼,邊學(xué)邊練,可以免費試看試學(xué),還有各種輔助工具和資料,非常適合新手!點這里前往學(xué)習(xí)哦!云端源想

          7、animation-fill-mode:定義動畫在開始前和結(jié)束后的狀態(tài),比如可見或隱藏。

          • none 動畫執(zhí)行完畢,元素回到原來位置,默認(rèn)值
          • forwards 動畫執(zhí)行完畢,元素會停止在動畫結(jié)束的位置
          • backwards 動畫延時等待時,元素就會處于開始位置
          • both 結(jié)合了forwards和backwards



          8、animation-play-state:控制動畫是否正在運行或暫停,常見的值有running(運行)和paused(暫停)。


          此外,在使用animation屬性時,至少需要指定兩個屬性:動畫的名稱和動畫的持續(xù)時間。其他屬性可以根據(jù)需要選擇性地設(shè)置,以達到預(yù)期的動畫效果。


          示例

          /* animation-name: test;
          animation-duration: 2s;
          animation-delay: 2s;
          animation-timing-function: linear;
          animation-iteration-count: infinite;
          animation-direction: alternate;
          animation-fill-mode: both; */
          
          animation: test 2s 2s linear infinite alternate both;

          總結(jié)來說,CSS的animation屬性提供了一種在不使用JavaScript的情況下,通過純CSS實現(xiàn)網(wǎng)頁元素動畫的方式。它能夠使元素從一種樣式平滑過渡到另一種樣式,增強用戶的視覺體驗。


          通過這篇文章,我們了解了CSS動畫中的過渡屬性和動畫屬性的基本概念和應(yīng)用。它們可以幫助我們創(chuàng)建出各種吸引人的動畫效果,讓我們的網(wǎng)頁更加生動有趣。


          記住,好的動畫效果應(yīng)該是恰到好處的,過多的動畫可能會讓用戶感到困擾。所以,讓我們一起用好這兩個屬性,創(chuàng)造出更好的用戶體驗吧!



          我們下期再見!

          END

          文案編輯|云端學(xué)長

          文案配圖|云端學(xué)長

          內(nèi)容由:云端源想分享


          用AJAX實現(xiàn)動態(tài)數(shù)據(jù)交互的示例代碼和心得體會

          示例代碼:

          ```html
          <!DOCTYPE html>
          <html>
          <head>
          <title>AJAX示例</title>
          <script>
          function loadXMLDoc() {
          var xmlhttp;
          if (window.XMLHttpRequest) {
          xmlhttp = new XMLHttpRequest();
          } else {
          xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
          }
          xmlhttp.onreadystatechange = function() {
          if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
          document.getElementById("demo").innerHTML = xmlhttp.responseText;
          }
          }
          xmlhttp.open("GET", "example.php", true);
          xmlhttp.send();
          }
          </script>
          </head>
          <body>
          <button type="button" onclick="loadXMLDoc()">點擊加載數(shù)據(jù)</button>
          <div id="demo"></div>
          </body>
          </html>
          ```

          使用心得:

          在開發(fā)過程中,我發(fā)現(xiàn)使用AJAX可以實現(xiàn)網(wǎng)頁與服務(wù)器之間的異步數(shù)據(jù)交互,提升用戶體驗和頁面性能。

          1. AJAX(Asynchronous JavaScript and XML)是一種通過JavaScript和XML進行異步通信的技術(shù)。通過AJAX,可以在不刷新整個頁面的情況下,向服務(wù)器發(fā)送請求并獲取響應(yīng)數(shù)據(jù),然后使用JavaScript將數(shù)據(jù)動態(tài)更新到頁面上。

          2. 在示例代碼中,我使用了XMLHttpRequest對象來創(chuàng)建AJAX請求。通過判斷瀏覽器是否支持`XMLHttpRequest`對象,可以創(chuàng)建不同版本的`XMLHttpRequest`對象。然后,使用`open()`方法指定請求的方法(GET或POST)、URL和是否異步。接著,使用`send()`方法發(fā)送請求,并設(shè)置`onreadystatechange`事件處理函數(shù)來處理服務(wù)器響應(yīng)。當(dāng)`readyState`為4(表示請求已完成)且`status`為200(表示請求成功)時,將服務(wù)器響應(yīng)的數(shù)據(jù)更新到頁面上。

          3. 在實際開發(fā)中,可以將AJAX與后端語言(如PHP)和數(shù)據(jù)庫(如MySQL)結(jié)合使用,實現(xiàn)動態(tài)數(shù)據(jù)的增刪改查等操作。可以通過AJAX向服務(wù)器發(fā)送請求,服務(wù)器接收到請求后,使用后端語言處理數(shù)據(jù),并與數(shù)據(jù)庫交互,最后將處理結(jié)果返回給前端頁面。

          在開發(fā)過程中遇到的問題和解決的bug:

          在使用AJAX進行開發(fā)的過程中,我曾遇到過一些問題和bug。其中一次遇到的問題是跨域請求被瀏覽器攔截。由于瀏覽器的同源策略,AJAX請求默認(rèn)只能向同源(協(xié)議、域名、端口號相同)的服務(wù)器發(fā)送請求,否則會被瀏覽器攔截。解決這個問題的方法是在服務(wù)器端設(shè)置響應(yīng)頭,允許跨域請求。

          另外,我還遇到過一些其他的問題,比如請求超時、返回數(shù)據(jù)格式錯誤等。這些問題通常可以通過設(shè)置合理的超時時間、檢查服務(wù)器端代碼等方式來解決。

          總結(jié):

          使用AJAX可以實現(xiàn)網(wǎng)頁與服務(wù)器之間的異步數(shù)據(jù)交互,提升用戶體驗和頁面性能。在開發(fā)過程中,需要注意瀏覽器的同源策略,并根據(jù)實際需求選擇合適的后端語言和數(shù)據(jù)庫。在遇到問題時,可以通過查看錯誤信息、調(diào)試代碼等方式來解決。

          (注:以上內(nèi)容為筆記,非官方文檔)

          我是永不低頭的熊,喜歡美食、健身,當(dāng)然也喜歡寫代碼,每天不定時更新各類編程相關(guān)的文章,希望你在碼農(nóng)這條路上不再孤單!

          可視化大屏,我們都知道數(shù)據(jù)的實時性對于大屏的意義,便于快速決策、快速響應(yīng)。那么可視化大屏如何實現(xiàn)數(shù)據(jù)的實時更新,實施通知呢,都用到了哪些技術(shù),本文為大家一一解讀。

          一、可視化大屏數(shù)據(jù)實時更新的意義

          智慧園區(qū)可視化大屏數(shù)據(jù)實時更新具有以下重要意義:

          1. 即時監(jiān)控:通過實時更新數(shù)據(jù),智慧園區(qū)管理者和運營人員可以實時監(jiān)控園區(qū)內(nèi)各項指標(biāo)和數(shù)據(jù),及時發(fā)現(xiàn)異常情況并采取相應(yīng)措施,確保園區(qū)運行的穩(wěn)定性和安全性。
          2. 即時決策:實時更新的數(shù)據(jù)可以為管理者提供及時的決策支持。當(dāng)園區(qū)發(fā)生變化或問題時,管理者可以根據(jù)實時數(shù)據(jù)做出快速決策,提高園區(qū)運營效率和管理水平。
          3. 實時通知:通過大屏數(shù)據(jù)實時更新,可以及時向園區(qū)內(nèi)的員工、訪客和其他相關(guān)人員傳達重要信息和通知,確保信息的及時性和準(zhǔn)確性。
          4. 數(shù)據(jù)分析:實時更新的數(shù)據(jù)可以用于進行實時數(shù)據(jù)分析,幫助管理者了解園區(qū)運行情況、趨勢和規(guī)律,為未來的規(guī)劃和決策提供參考依據(jù)。
          5. 提升用戶體驗:對于園區(qū)內(nèi)的訪客和客戶來說,實時更新的數(shù)據(jù)可以提升他們的體驗感受,使其更加了解園區(qū)的情況和服務(wù),提高園區(qū)的吸引力和競爭力。


          智慧園區(qū)可視化大屏數(shù)據(jù)實時更新對于園區(qū)管理、運營和用戶體驗都具有重要意義,可以幫助園區(qū)實現(xiàn)更高效的管理和運營,提升園區(qū)的整體管理水平和服務(wù)質(zhì)量。


          二、數(shù)據(jù)實時更新的過程

          數(shù)據(jù)實時更新的過程通常包括以下幾個步驟:

          1. 數(shù)據(jù)采集:首先,需要從各種數(shù)據(jù)源中采集數(shù)據(jù)。這些數(shù)據(jù)源可以包括傳感器、數(shù)據(jù)庫、第三方API等。數(shù)據(jù)采集可以通過各種方式實現(xiàn),例如定時輪詢、訂閱/發(fā)布模式、Webhook等。
          2. 數(shù)據(jù)傳輸:采集到的數(shù)據(jù)需要通過網(wǎng)絡(luò)傳輸?shù)綌?shù)據(jù)處理和展示的系統(tǒng)中。這通常涉及數(shù)據(jù)的編碼、加密和傳輸,以確保數(shù)據(jù)的安全性和完整性。常用的傳輸協(xié)議包括HTTP、WebSocket、MQTT等。
          3. 數(shù)據(jù)處理:一旦數(shù)據(jù)到達數(shù)據(jù)處理系統(tǒng),需要對數(shù)據(jù)進行處理和解析。這可能涉及數(shù)據(jù)的解析、轉(zhuǎn)換、篩選、聚合等操作,以便將數(shù)據(jù)轉(zhuǎn)換為可用于展示的格式。

          1. 數(shù)據(jù)存儲:處理后的數(shù)據(jù)可能需要存儲在數(shù)據(jù)庫或緩存中,以便后續(xù)查詢和展示。數(shù)據(jù)存儲可以采用關(guān)系型數(shù)據(jù)庫、NoSQL數(shù)據(jù)庫、內(nèi)存數(shù)據(jù)庫等不同的存儲方式。
          2. 數(shù)據(jù)展示:最后,數(shù)據(jù)需要在可視化大屏上進行展示。這包括設(shè)計和實現(xiàn)數(shù)據(jù)展示界面,將數(shù)據(jù)以圖表、表格、地圖等形式呈現(xiàn)給用戶,以便用戶能夠直觀地了解數(shù)據(jù)情況。
          3. 實時更新:為實現(xiàn)數(shù)據(jù)的實時更新,系統(tǒng)需要定時或?qū)崟r地從數(shù)據(jù)源中獲取最新數(shù)據(jù),并更新到數(shù)據(jù)處理和展示系統(tǒng)中。這可能涉及定時任務(wù)、事件驅(qū)動等機制,以確保數(shù)據(jù)的及時更新和展示。

          通過以上步驟,數(shù)據(jù)實時更新的過程可以實現(xiàn)數(shù)據(jù)的及時采集、傳輸、處理和展示,從而實現(xiàn)數(shù)據(jù)的實時更新和展示。這樣可以幫助用戶及時了解數(shù)據(jù)情況,做出快速決策,并提升用戶體驗


          三、數(shù)據(jù)實施更新用到了哪些技術(shù)

          數(shù)據(jù)實時更新涉及到多種技術(shù)和工具,以下是一些常用的技術(shù)和工具:

          1. 數(shù)據(jù)采集技術(shù):
            • 傳感器技術(shù):通過傳感器采集環(huán)境數(shù)據(jù),如溫度、濕度、光照等。
            • 數(shù)據(jù)庫連接技術(shù):通過數(shù)據(jù)庫連接工具或API獲取實時數(shù)據(jù)。
            • Web爬蟲技術(shù):通過網(wǎng)絡(luò)爬蟲技術(shù)從網(wǎng)站上獲取實時數(shù)據(jù)。
          1. 數(shù)據(jù)傳輸技術(shù)
            • HTTP/HTTPS:通過HTTP或HTTPS協(xié)議傳輸數(shù)據(jù)。
            • WebSocket:使用WebSocket協(xié)議實現(xiàn)實時雙向通信。
            • MQTT:輕量級的消息傳輸協(xié)議,適用于物聯(lián)網(wǎng)設(shè)備之間的通信。

          1. 數(shù)據(jù)處理技術(shù)
            • 數(shù)據(jù)解析和轉(zhuǎn)換:使用JSON、XML等格式對數(shù)據(jù)進行解析和轉(zhuǎn)換。
            • 數(shù)據(jù)清洗和篩選:對數(shù)據(jù)進行清洗和篩選,去除無效數(shù)據(jù)或異常數(shù)據(jù)。
            • 數(shù)據(jù)聚合:將多個數(shù)據(jù)源的數(shù)據(jù)聚合在一起,形成完整的數(shù)據(jù)集。
          1. 數(shù)據(jù)存儲技術(shù):
            • 關(guān)系型數(shù)據(jù)庫:如MySQL、PostgreSQL等用于存儲結(jié)構(gòu)化數(shù)據(jù)。
            • NoSQL數(shù)據(jù)庫:如MongoDB、Redis等用于存儲非結(jié)構(gòu)化數(shù)據(jù)或大數(shù)據(jù)量數(shù)據(jù)。
            • 內(nèi)存數(shù)據(jù)庫:如Redis、Memcached等用于快速存取數(shù)據(jù)。



          1. 數(shù)據(jù)展示技術(shù):
            • 可視化工具:如ECharts、Highcharts等用于將數(shù)據(jù)可視化展示。
            • 大屏展示系統(tǒng):如大屏幕顯示系統(tǒng)、數(shù)字看板等用于在大屏上展示實時數(shù)據(jù)。
            • Web前端技術(shù):如HTML、CSS、JavaScript等用于設(shè)計和實現(xiàn)數(shù)據(jù)展示界面。
          1. 實時更新技術(shù):
            • 定時任務(wù):使用定時任務(wù)框架如Quartz、Spring Task等定時更新數(shù)據(jù)。
            • 事件驅(qū)動:使用消息隊列或事件驅(qū)動框架如Kafka、RabbitMQ等實現(xiàn)實時數(shù)據(jù)更新。
            • 實時計算:使用流處理框架如Apache Flink、Apache Kafka Streams等實時處理數(shù)據(jù)并更新。

          以上列舉的技術(shù)和工具是實現(xiàn)數(shù)據(jù)實時更新的常用方法,根據(jù)具體的需求和場景可以選擇合適的技朋和工具進行實施。


          大象數(shù)據(jù)工場→10年經(jīng)驗的可視化/數(shù)字孿生領(lǐng)域的老司機,專注大數(shù)據(jù)設(shè)計和前端交互部分。關(guān)注我,帶您了解最新的觀點、技術(shù)、干貨,如有需求可私信。


          主站蜘蛛池模板: 亚洲AV成人精品一区二区三区| 精品国产一区在线观看 | 国产精品视频一区| 激情内射亚州一区二区三区爱妻| 一区二区三区福利视频免费观看| 国产日韩精品一区二区在线观看播放 | 久久无码人妻一区二区三区午夜| 国产在线观看一区二区三区四区 | 人妻少妇精品视频三区二区一区| 国产在线aaa片一区二区99| 国产精品无码一区二区三区在| 99精品一区二区三区| 国产精品无码一区二区三级 | eeuss鲁片一区二区三区| 亚洲av日韩综合一区在线观看| chinese国产一区二区| 国产精品一区二区三区高清在线 | 亚洲AV无码一区二区三区电影| 国产激情视频一区二区三区| 一区二区三区视频网站| 国产成人一区二区动漫精品 | 精品亚洲A∨无码一区二区三区| 中文字幕一区二区日产乱码| 视频在线一区二区三区| 波多野结衣中文字幕一区| 欧美日韩精品一区二区在线视频 | 日韩精品一区二区三区不卡| 麻豆va一区二区三区久久浪| 人妻在线无码一区二区三区| 亚洲中文字幕一区精品自拍| 国产精品自拍一区| 精品视频一区二区三三区四区| 国产一区二区三区高清在线观看| 国产一区二区三区在线影院| 精品久久久久中文字幕一区| 国产福利电影一区二区三区,日韩伦理电影在线福 | 中文字幕日韩人妻不卡一区| 中文字幕无码免费久久9一区9| 精品人妻少妇一区二区| 国产一区二区四区在线观看 | 日韩有码一区二区|