国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 web前端 html教學(xué) 【css3】通過圖片輪播來了解Transform,Transition和Animation_html/css_WEB-ITnose

【css3】通過圖片輪播來了解Transform,Transition和Animation_html/css_WEB-ITnose

Jun 24, 2016 am 11:48 AM

  樓主喜歡追求視覺上的享受,雖常以犧牲性能無法兼容為代價卻也樂此不疲。本文就通過一個個的demo演示來簡單了解下css3下的Transform,Transition和Animation。

  本文需要實現(xiàn)效果:(請用chrome打開

  • 圖片輪播
  • 圖片自動輪播
  • ?

    Transform

      根據(jù)我的理解,transform和width、height、background一樣,都是dom的屬性,不同的是它是css3旗下的,比較?,能夠?qū)υ瓉淼膁om元素進(jìn)行移動、縮放、轉(zhuǎn)動、拉長或拉伸,跟canvas上的某些api神似,這么說來transform好像能干些js才能干的事。

      transform分2D變換和3D變換,w3school中有很好的介紹和例子,具體請猛戳:CSS3 2D 轉(zhuǎn)換??CSS3 3D 轉(zhuǎn)換

      為了方便查找,我把w3school上的截圖在這里保存一份:

    ?

    Transition

      transition的解釋是過渡,我的理解是css之間的變換,但是這個變換很?很平滑,類似動畫。舉個栗子,一開始某個dom的類是classA,通過某種操作(比如被點擊了)后變成了classB,如果沒有transition,類之間的變換是很快的,機(jī)械般瞬間完成,但是有了transition,這便會是一個很緩和平滑的過程。

      我們通過demo來講解transition的使用方式。

      寫好如下的html文件:

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><style type="text/css"></style>  <img  src='http://hanzichi.github.io/img/img0.png' / alt="【css3】通過圖片輪播來了解Transform,Transition和Animation_html/css_WEB-ITnose" >

      打開來是非常簡單的一張圖,加上css:

    img {  -webkit-transition: all 1s ease-in-out 0s;}img:hover {  -webkit-transform:     rotate(360deg)    scale(0.5, 0.5);  opacity: 0;}

      效果請猛戳:transition變換 (ps:所有demo都沒有做兼容 請用chrome打開

      是否很簡單?demo中,你只需設(shè)定好圖片(img標(biāo)簽)原先的屬性和hover后的屬性,中間的變換過程全由transition搞定!而transition加在某個元素下(demo的transition加在img標(biāo)簽下),仿佛設(shè)置了一個監(jiān)聽器,一旦該元素的屬性值即將要發(fā)生變化,就會自動檢查transition中的設(shè)定的屬性,一旦發(fā)現(xiàn)相匹配,則進(jìn)行平滑的過渡。

      transition有4個屬性,語法:transition: property duration timing-function delay 從前到后4個屬性依次可理解成“過渡動畫變換的屬性”、“過渡花費時間”、“過渡過程的速度變化”和“過渡開始前的等待時間”(默認(rèn)值:all 0 ease 0 前兩個是必須的 后兩個可省略)。

      如果不是所有屬性都要進(jìn)行平滑過渡,或者各屬性過渡的時間、速度等設(shè)置各有需求,可以把要過渡的屬性用逗號隔開,demo可寫成:

    img {  -webkit-transition:     -webkit-transform 1s ease-in-out 0s,    opacity 1s ease-in-out 1s;}img:hover {  -webkit-transform:     rotate(360deg)    scale(0.5, 0.5);  opacity: 0;}

      如果非得把transition的四個屬性分開來寫,可以這樣:

    img {  -webkit-transition-property: -webkit-transform, opacity;  -webkit-transition-duration: 1s;  -webkit-transition-timing-function: ease-in-out;  -webkit-transition-delay: 0s;}

      我把后三個屬性放在一起只寫了一個值(因為值一樣),你也可以像property一樣分開來寫用逗號隔開。

      這里再介紹下timing-function的取值。六大取值:(還是盜圖w3cschool)

      小結(jié):一般transition應(yīng)用在dom的class變換中,可先行寫好機(jī)械的變換,然后添加過渡效果。

    Animation

      Animation的解釋是動畫,加強(qiáng)版的transition。

      如果說transition能實現(xiàn)某些js效果,animation就更像是js了。類似于寫一個canvas特效,特效總共比如說多少時間,我們能規(guī)定在什么時候該出現(xiàn)什么樣的場景,而各個場景間的轉(zhuǎn)換則完全由css3本身負(fù)責(zé),而keyframes好比定義了一個js方法。

      主要應(yīng)用在某個元素需要進(jìn)行連續(xù)的n次css變換。一個簡單的demo如下:animation動畫

      我們在@keyframes 中創(chuàng)建動畫時,請把它捆綁到某個選擇器,否則不會產(chǎn)生動畫效果。

      通過規(guī)定至少以下兩項 CSS3 動畫屬性,即可將動畫綁定到選擇器:

  • 規(guī)定動畫的名稱
  • 規(guī)定動畫的時長
  • demo代碼:

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><style type="text/css">  img {    /*-webkit-animation: myfirst 5s;*/  }    @-webkit-keyframes myfirst  {    0% {      -webkit-transform:         rotate(0deg)        scale(1, 1);      opacity: 1;    }        50% {      -webkit-transform:         rotate(360deg)        scale(0.5, 0.5);      opacity: 0.5;    }        100% {      -webkit-transform:         rotate(0deg)        scale(1, 1)        translate(300px, 200px);      opacity: 1;    }  }  img {    -webkit-animation: myfirst 5s linear 0s 1 alternate;    /*停在結(jié)束位置*/    -webkit-animation-fill-mode: forwards;  }</style>  <img  src='http://hanzichi.github.io/img/img0.png' / alt="【css3】通過圖片輪播來了解Transform,Transition和Animation_html/css_WEB-ITnose" >

    更多請猛戳 CSS3 動畫

    具體應(yīng)用:圖片輪播

      類似應(yīng)用可先寫好無過渡的代碼,然后再在class轉(zhuǎn)換之間添加transition。

      該demo(圖片自動輪播)和transition有關(guān)的核心代碼就幾行,而js只是簡單的對元素的class進(jìn)行賦值,動畫過程全由css3完成!

    img {  position: absolute;  -webkit-transition: all 2s ease-out;}.disappear {  opacity: 0;}.show {  opacity: 1;}

      當(dāng)img的class從show轉(zhuǎn)換成disappear或者從disappear轉(zhuǎn)換成show時(img標(biāo)簽下的class變換),就會執(zhí)行transition設(shè)置的過渡動畫。

      另一個demo的實現(xiàn)也大同小異,有興趣的可以參考源碼:源碼請猛戳

    ?

    總結(jié)

      總的來說,transform只是為dom增添一些屬性,而如果搭配transition或者animation則能完成一些動畫效果,我覺得實際應(yīng)用較多的應(yīng)該還是transition,可配合偽類或者click等事件。

      樓主對以上的理解不深,如有出入,還請指出。

      如需了解更多,可以參考這篇?CSS3 Transitions, Transforms和Animation使用簡介與應(yīng)用展示

    本網(wǎng)站聲明
    本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

    熱AI工具

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強(qiáng)大的PHP整合開發(fā)環(huán)境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網(wǎng)頁開發(fā)工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級程式碼編輯軟體(SublimeText3)

    我如何了解最新的HTML標(biāo)準(zhǔn)和最佳實踐? 我如何了解最新的HTML標(biāo)準(zhǔn)和最佳實踐? Jun 20, 2025 am 08:33 AM

    要跟上HTML標(biāo)準(zhǔn)和最佳實踐,關(guān)鍵在於有意為之而非盲目追隨。首先,關(guān)注官方來源如WHATWG和W3C的摘要或更新日誌,了解新標(biāo)籤(如)和屬性,將其作為參考解決疑難問題;其次,訂閱可信的網(wǎng)頁開發(fā)新聞通訊和博客,每週花10-15分鐘瀏覽更新,關(guān)注實際用例而非僅收藏文章;再次,使用開發(fā)者工具和linters如HTMLHint,通過即時反饋優(yōu)化代碼結(jié)構(gòu);最後,與開發(fā)者社區(qū)互動,分享經(jīng)驗並學(xué)習(xí)他人實戰(zhàn)技巧,從而持續(xù)提升HTML技能。

    如何使用元素來表示文檔的主要內(nèi)容? 如何使用元素來表示文檔的主要內(nèi)容? Jun 19, 2025 pm 11:09 PM

    使用標(biāo)籤的原因是提升網(wǎng)頁的語義化結(jié)構(gòu)和可訪問性,使屏幕閱讀器和搜索引擎更易理解頁面內(nèi)容,並允許用戶快速跳轉(zhuǎn)至核心內(nèi)容。以下是關(guān)鍵要點:1.每個頁面應(yīng)僅包含一個元素;2.不應(yīng)包括跨頁面重複的內(nèi)容(如側(cè)邊欄或頁腳);3.可與ARIA屬性結(jié)合使用以增強(qiáng)無障礙體驗。通常位於和之後、之前,用於包裹唯一的頁面內(nèi)容,例如文章、表單或產(chǎn)品詳情,並應(yīng)避免嵌套在、或中;為提高輔助功能,可使用aria-labelledby或aria-label明確標(biāo)識部分。

    如何創(chuàng)建基本的HTML文檔? 如何創(chuàng)建基本的HTML文檔? Jun 19, 2025 pm 11:01 PM

    要創(chuàng)建一個基本的HTML文檔,首先需要了解其基本結(jié)構(gòu)並按照標(biāo)準(zhǔn)格式編寫代碼。 1.開始時使用聲明文檔類型;2.使用標(biāo)籤包裹整個內(nèi)容;3.在其中包含和兩個主要部分,用於存放元數(shù)據(jù)如標(biāo)題、樣式錶鍊接等,而則包含用戶可見的內(nèi)容如標(biāo)題、段落、圖片和鏈接;4.保存文件為.html格式並在瀏覽器中打開查看效果;5.隨後可逐步添加更多元素以豐富頁面內(nèi)容。遵循這些步驟即可快速構(gòu)建一個基礎(chǔ)網(wǎng)頁。

    如何使用 如何使用 Jun 19, 2025 pm 11:41 PM

    要創(chuàng)建HTML複選框,需使用type屬性設(shè)為checkbox的元素。 1.基本結(jié)構(gòu)包含id、name和label標(biāo)籤,確保點擊文字可切換選項;2.多個相關(guān)複選框應(yīng)使用相同name但不同value,並用fieldset包裹提升可訪問性;3.自定義樣式時隱藏原生控件並用CSS設(shè)計替代元素,同時保持功能完整;4.確??捎眯裕鋵abel、支持鍵盤導(dǎo)航且避免僅依賴視覺提示。以上步驟能幫助開發(fā)者正確實現(xiàn)兼具功能與美觀的複選框組件。

    如何最小化HTML文件的大小? 如何最小化HTML文件的大??? Jun 24, 2025 am 12:53 AM

    要減小HTML文件大小需清理冗余代碼、壓縮內(nèi)容并優(yōu)化結(jié)構(gòu)。1.刪除未使用的標(biāo)簽、注釋和多余空白以減少體積;2.將內(nèi)聯(lián)CSS和JavaScript移至外部文件并合并多個腳本或樣式塊;3.在不影響解析的前提下簡化標(biāo)簽語法,如省略可選閉合標(biāo)簽或使用簡短屬性;4.清理后啟用Gzip或Brotli等服務(wù)器端壓縮技術(shù)進(jìn)一步縮減傳輸體積。這些步驟可在不犧牲功能的前提下顯著提升頁面加載性能。

    隨著時間的流逝,HTML如何發(fā)展,其歷史上的關(guān)鍵里程碑是什麼? 隨著時間的流逝,HTML如何發(fā)展,其歷史上的關(guān)鍵里程碑是什麼? Jun 24, 2025 am 12:54 AM

    htmlhasevolvedscreatscreationtomeetthegrowingdemandsofwebdevelopersandusers.inatelyallyasimplemarkuplanguageforsharingdocuments,ithasundergonemajorupdates,包括html.2.0,包括wheintrodistusefforms;

    如何使用元素代表文檔或部分的頁腳? 如何使用元素代表文檔或部分的頁腳? Jun 25, 2025 am 12:57 AM

    是HTML5中用於定義頁面或內(nèi)容區(qū)塊底部的語義化標(biāo)籤,通常包含版權(quán)信息、聯(lián)繫方式或?qū)Ш芥溄拥?;它可置於頁面底部或嵌套在、等?biāo)籤內(nèi)作為區(qū)塊尾部;使用時應(yīng)注意避免重複濫用及放入無關(guān)內(nèi)容。

    如何使用元素將視頻嵌入HTML中? 如何使用元素將視頻嵌入HTML中? Jun 20, 2025 am 10:09 AM

    要在HTML中嵌入視頻,需使用標(biāo)籤並指定視頻源與屬性。 1.使用src屬性或元素定義視頻路徑和格式;2.添加controls、width、height等基本屬性;3.為兼容不同瀏覽器,可列舉MP4、WebM、Ogg等多種格式;4.使用controls、autoplay、muted、loop、preload等屬性控製播放行為;5.通過CSS實現(xiàn)響應(yīng)式佈局,確保適配不同屏幕。正確結(jié)構(gòu)與屬性組合能確保視頻良好顯示與功能支持。

    See all articles