精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

CSS3 2D和3D圖形與動(dòng)畫效果

移動(dòng)開發(fā)
本文包含定義 CSS3 選擇器來(lái)創(chuàng)建 3D 效果和 3D 動(dòng)畫效果的示例。 具體來(lái)說(shuō),您將學(xué)習(xí)如何使用 CSS3 過(guò)渡、CSS3keyframe 規(guī)則和 CSS3 函數(shù) scale3d()、rotate3d()、和translate3d(),它們使您能夠使用純 CSS3 創(chuàng)建一個(gè)有動(dòng)畫效果的 3D 立方體。 本文中的代碼示例和圖像摘自圖書 HTML5 Canvas and CSS3 Graphics Primer (在本文末尾處提供了更多詳細(xì)信息)。

本文包含定義 CSS3 選擇器來(lái)創(chuàng)建 3D 效果和 3D 動(dòng)畫效果的示例。 具體來(lái)說(shuō),您將學(xué)習(xí)如何使用 CSS3 過(guò)渡、CSS3keyframe 規(guī)則和 CSS3 函數(shù) scale3d()、rotate3d()、和translate3d(),它們使您能夠使用純 CSS3 創(chuàng)建一個(gè)有動(dòng)畫效果的 3D 立方體。 本文中的代碼示例和圖像摘自圖書 HTML5 Canvas and CSS3 Graphics Primer (在本文末尾處提供了更多詳細(xì)信息)。

使用 CSS3 轉(zhuǎn)換構(gòu)建基于 CSS3 的立方體

為了創(chuàng)建和渲染帶有漸變陰影的 3D 立方體,您可以使用 CSS3 轉(zhuǎn)換 rotate()、scale() 和 skew()。

清單 1.1 顯示了 3DCube1.html 的內(nèi)容,而清單 1.2 顯示了 3DCube1.css 的內(nèi)容,它們說(shuō)明如何在 CSS3 中模擬一個(gè)立方體。

清單 1.1 3DCube1.html

  1. <!DOCTYPE html> 
  2. <html lang="en"> 
  3. <head>    
  4. <title>CSS 3D Cube Example</title>    
  5.   <meta charset="utf-8" /> 
  6.   <link href="3DCSS1.css" rel="stylesheet" type="text/css"> 
  7. </head> 
  8.  
  9. <body> 
  10.   <header> 
  11.    <h1>Hover Over the Cube Faces:</h1> 
  12.   </header> 
  13.  <div id="outer">                       
  14.   <div id="top">Text1</div> 
  15.   <div id="left">Text2</div> 
  16.   <div id="right">Text3</div> 
  17.  </div>                         
  18. </body> 
  19. </html> 

清單 1.1 是一個(gè)簡(jiǎn)單的 HTML 頁(yè)面,引用了 CSS 樣式表 3DCSS1.css,其中包含的 CSS3 選擇器用于在該 Web 頁(yè)面中設(shè)置 HTML <div> 元素的樣式。

清單 1.2 3DCube1.css

  1. /* animation effects */  
  2. #right:hover {  
  3. -webkit-transition: -webkit-transform 3.0s ease;  
  4. transition: transform 3.0s ease;  
  5.  
  6. -webkit-transform : scale(1.2) skew(-10deg, -30deg) rotate(-45deg);  
  7. transform : scale(1.2) skew(-10deg, -30deg) rotate(-45deg);  
  8. }  
  9. #left:hover {  
  10. -webkit-transition: -webkit-transform 2.0s ease;  
  11. transition: transform 2.0s ease;  
  12.  
  13. -webkit-transform : scale(0.8) skew(-10deg, -30deg) rotate(-45deg);  
  14. transform : scale(0.8) skew(-10deg, -30deg) rotate(-45deg);  
  15. }  
  16. #top:hover {  
  17. -webkit-transition: -webkit-transform 2.0s ease;  
  18. transition: transform 2.0s ease;  
  19.  
  20. -webkit-transform : scale(0.5) skew(-20deg, -30deg) rotate(45deg);  
  21. transform : scale(0.5) skew(-20deg, -30deg) rotate(45deg);  
  22. }  
  23.  
  24. /* size and position */  
  25. #right, #left, #top {    
  26. position:relative;  padding: 0px;  width: 200px;  height: 200px;  
  27. }  
  28. #left {  
  29.   font-size: 48px;  
  30.   left: 20px;  
  31.  
  32.   background-image:  
  33.     -webkit-radial-gradient(red 4px, transparent 28px),  
  34.     -webkit-repeating-radial-gradient(red 0px,  yellow 4px, green 8px,   
  35.                                       red 12px, transparent 26px,   
  36.                                       blue 20px, red 24px,  
  37.                                       transparent 28px, blue 12px),  
  38.     -webkit-repeating-radial-gradient(red 0px,  yellow 4px, green 8px,   
  39.                                       red 12px, transparent 26px,   
  40.                                       blue 20px, red 24px,      
  41.                                       transparent 28px, blue 12px);  
  42.  
  43.   background-size: 100px 40px, 40px 100px;  
  44.   background-position: 0 0;  
  45.  
  46.   -webkit-transform: skew(0deg, 30deg);  
  47. }  
  48.  
  49. #right {  
  50.   font-size: 48px;  
  51.   width:  170px;  
  52.   top: -192px;  
  53.   left: 220px;  
  54.  
  55.   background-image:  
  56.     -webkit-radial-gradient(red 4px, transparent 48px),  
  57.     -webkit-repeating-linear-gradient(0deg, red 5px,  green 4px,   
  58.                                       yellow 8px, blue 12px,   
  59.                                       transparent 16px, red 20px,  
  60.                                       blue 24px, transparent 28px,  
  61.                                       transparent 32px),  
  62.     -webkit-radial-gradient(blue 8px, transparent 68px);  
  63.  
  64.   background-size: 120px 120px, 24px 24px;  
  65.   background-position: 0 0;  
  66.  
  67.   -webkit-transform: skew(0deg, -30deg);  
  68. }  
  69.  
  70. #top {  
  71.   font-size: 48px;  
  72.   top: 50px;  
  73.   left: 105px;  
  74.  
  75.   background-image:  
  76.     -webkit-radial-gradient(white 2px, transparent 8px),  
  77.     -webkit-repeating-linear-gradient(45deg, white 2px,  yellow 8px,   
  78.                                       green 4px, red 12px,   
  79.                                       transparent 26px, blue 20px,  
  80.                                       red 24px, transparent 28px,   
  81.                                       blue 12px),  
  82.     -webkit-repeating-linear-gradient(-45deg, white 2px,  yellow 8px,   
  83.                                       green 4px, red 12px,   
  84.                                       transparent 26px, blue 20px,  
  85.                                       red 24px, transparent 28px,   
  86.                                       blue 12px);  
  87.  
  88.   background-size: 100px 30px, 30px 100px;  
  89.   background-position: 0 0;  
  90.  
  91.   -webkit-transform: rotate(60deg) skew(0deg, -30deg); scale(1, 1.16);  
  92. }  

清單 1.2 中的前三個(gè)選擇器定義用戶將鼠標(biāo)懸停在立方體的上、左或右側(cè)面時(shí)的動(dòng)畫效果。 具體來(lái)說(shuō),只要用戶將鼠標(biāo)懸停在立方體的右側(cè)面,#right:hover 選擇器就在三秒鐘的間隔內(nèi)執(zhí)行動(dòng)畫效果,如下所示:

  1. #right:hover {  
  2. -webkit-transition: -webkit-transform 3.0s ease;  
  3. transition: transform 3.0s ease;  
  4.  
  5. -webkit-transform : scale(1.2) skew(-10deg, -30deg) rotate(-45deg);  
  6. transform: scale(1.2) skew(-10deg, -30deg) rotate(-45deg);  
  7. }  

您已熟悉 transition 屬性,請(qǐng)注意 transform 屬性指定 CSS3 轉(zhuǎn)換函數(shù) scale()、skew() 和 rotate()。 本文假設(shè)您之前曾經(jīng)使用過(guò)這些轉(zhuǎn)換函數(shù)。 (如果您希望了解有關(guān)這些函數(shù)的更多信息,您可以在 HTML5 Canvas and CSS3 Graphics Primer 中找到詳細(xì)信息,也可以閱讀Chris Coyier 的帖子,主題:轉(zhuǎn)換)。 同時(shí)應(yīng)用這三個(gè)函數(shù),意味著您將看到縮放、斜切和旋轉(zhuǎn)效果同時(shí)發(fā)生,而不是按順序先后發(fā)生。

清單 1.2 中的最后三個(gè)選擇器定義立方體每個(gè)側(cè)面的屬性。 例如,#left 選擇器指定某些文本的字體大小,以及立方體左側(cè)面的位置屬性。 #left 選擇器最復(fù)雜的部分是 background-image 的屬性值,它由一個(gè) WebKit 特定的徑向漸變組合、重復(fù)的徑向漸變和另一個(gè)徑向漸變組成。 請(qǐng)注意,左側(cè)面是一個(gè)矩形,使用這行代碼將它轉(zhuǎn)換成一個(gè)平行四邊形:

  1. -webkit-transform: skew(0deg, -30deg); 

#top 選擇器和 #right 選擇器含有與 #left 選擇器相近的代碼,您可以嘗試修改它們的值,以創(chuàng)建其他漂亮的視覺(jué)效果。

圖 1.1 顯示將3DCube1.css 中的 CSS 選擇器應(yīng)用到 HTML 頁(yè)面 3DCube1.html 中的 <div> 元素的效果。

[[63034]]

圖 1.1 一個(gè)基于 CSS3 的立方體。

CSS3 過(guò)渡

CSS3 過(guò)渡涉及以平滑的方式更改 CSS 值,并且它們都是由用戶手勢(shì)(比如鼠標(biāo)點(diǎn)擊、光標(biāo)或“懸停”效果)觸發(fā)的。

WebKit 最初開發(fā)了 CSS3 過(guò)渡,并且通過(guò)使用瀏覽器特定的前綴,在 Safari、Chrome(3.2 或更高版本)、Opera(10.5 或更高版本)及 Firefox(4.0 或更高版本)中也支持它們,您會(huì)在本節(jié)稍后看到該內(nèi)容。 請(qǐng)記住,有些工具包(比如 jQuery 和 Prototype)將類似的過(guò)渡效果作為其基于 CSS3 的變體,并提供支持。

創(chuàng)建 CSS 過(guò)渡的基本語(yǔ)法是一個(gè)“三元函數(shù)”,指定:

一個(gè) CSS 屬性

持續(xù)時(shí)間(以秒為單位)

一個(gè)過(guò)渡計(jì)時(shí)函數(shù)

以下是一個(gè)基于 WebKit 的過(guò)渡的示例:

  1. -webkit-transition-property: background;  
  2. -webkit-transition-duration: 0.5s;  
  3. -webkit-transition-timing-function: ease;  

幸運(yùn)的是,您還可以將這些過(guò)渡整合為一行代碼,如下所示:

  1. -webkit-transition: background 0.5s ease; 

以下是包括了這些過(guò)渡的 CSS3 選擇器示例:

  1. a.foo {  
  2. padding: 3px 6px;  
  3. background: #f00;  
  4. -webkit-transition: background 0.5s ease;  
  5. }  
  6.  
  7. a.foo:focus, a.foo:hover {  
  8. background: #00f;  
  9. }  

目前過(guò)渡需要瀏覽器特定的前綴,以便它們?cè)诓皇腔?WebKit 的瀏覽器中可以正常工作。 以下是一個(gè)適用于 Internet Explorer、Firefox 和 Opera 的示例:

  1. -ms-transition: background 0.5s ease;    
  2. -moz-transition: background 0.5s ease;    
  3. -o-transition: background 0.5s ease; 

目前,您可以指定以下其中一個(gè)過(guò)渡計(jì)時(shí)函數(shù)(使用瀏覽器特定的前綴):

ease

ease-in

ease-out

ease-in-out

cubic-bezier

如果這些過(guò)渡函數(shù)不能滿足您的需要,可以使用 Ceaser CSS Easing Animation Tool 創(chuàng)建自定義函數(shù)。

您可以使用–webkit-transition-property 指定多個(gè)屬性。 Mozilla Developer Network 在其文章Using CSS transitions中列出了過(guò)渡屬性。

有多列文本的 CSS3 動(dòng)畫效果

CSS3 支持多列文本,若一個(gè) Web 頁(yè)面包含大量文本,它可以創(chuàng)建非常漂亮的視覺(jué)效果。

清單 1.3 顯示了本。 MultiColumns.html 的內(nèi)容,清單 1.4 顯示了 MultiColumns.css 的內(nèi)容,它們說(shuō)明如何渲染多列文本。

清單 1.3 MultiColumns.html

  1. <!doctype html> 
  2. <html lang=”en”> 
  3. <head> 
  4.   <title>CSS Multi Columns Example</title> 
  5.   <meta charset="utf-8" /> 
  6.   <link href="MultiColumns.css" rel="stylesheet" type="text/css"> 
  7. </head> 
  8.  
  9. <body> 
  10.   <header> 
  11.    <h1>Hover Over the Multi-Column Text:</h1> 
  12.   </header> 
  13.  
  14.   <div id="outer"> 
  15.    <p id="line1"></p> 
  16.    <article> 
  17.      <div id="columns"> 
  18.       <p> CSS enables you to define selectors that specify the style  
  19.           or the manner in which you want to render elements in an HTML page.  
  20.           CSS helps you modularize your HTML content and since you can place your  
  21.           CSS definitions in a separate file, you can also re-use the same CSS  
  22.           definitions in multiple HTML files.  
  23.       </p> 
  24.       <p>  Moreover, CSS also enables you to simplify the updates that you  
  25.            need to make to elements in HTML pages.  For example, suppose that   
  26.            multiple HTML table elements use a CSS rule that specifies the color   
  27.            red. If you later need to change the color to blue, you can effect such a    
  28.            change simply by making one change (i.e., changing red to  
  29.            blue) in one CSS rule.   
  30.       </p>   
  31.       <p>  Without a CSS rule, you would be forced to manually update the  
  32.            color attribute in every HTML table element that is affected,   
  33.            which is error-prone, time-consuming, and extremely inefficient.  
  34.       <p>   
  35.      </div> 
  36.    </article> 
  37.    <p id="line1"></p> 
  38.   </div> 
  39. </body> 
  40. </html> 

清單 1.3 中的 HTML5 頁(yè)面包含語(yǔ)義標(biāo)記(在我的書 HTML5 Canvas and CSS3 Graphics Primer 中有所討論),它渲染多個(gè) HTML <p> 元素中的文本。 如您所見,此 HTML5 頁(yè)面很簡(jiǎn)單,多列效果在清單 1.4 所示的 CSS 樣式表 MultiColumns.css 中進(jìn)行定義。

清單 1.4 MultiColumn1.css

  1. /* animation effects */  
  2. #columns:hover {  
  3. -webkit-transition: -webkit-transform 3.0s ease;  
  4. transition: transform 3.0s ease;  
  5.     
  6. -webkit-transform : scale(0.5) skew(-20deg, -30deg) rotate(45deg);  
  7. transform : scale(0.5) skew(-20deg, -30deg) rotate(45deg);  
  8. }  
  9.  
  10. #line1:hover {  
  11. -webkit-transition: -webkit-transform 3.0s ease;  
  12. transition: transform 3.0s ease;  
  13.  
  14. -webkit-transform : scale(0.5) skew(-20deg, -30deg) rotate(45deg);  
  15. transform : scale(0.5) skew(-20deg, -30deg) rotate(45deg);  
  16. background-image: -webkit-gradient(linear, 0% 0%, 0% 100%,   
  17.                                    from(#fff), to(#00f));  
  18. background-image: -gradient(linear, 0% 0%, 0% 100%,   
  19.                             from(#fff), to(#00f));  
  20. -webkit-border-radius: 8px;border-radius: 8px;}  
  21.  
  22. #columns {  
  23. -webkit-column-count : 3;  
  24. -webkit-column-gap : 80px;  
  25. -webkit-column-rule : 1px solid rgb(255,255,255);  
  26. column-count : 3;  
  27. column-gap : 80px;  
  28. column-rule : 1px solid rgb(255,255,255);  
  29. }  
  30.  
  31. #line1 {  
  32. width:100%;  
  33. height:20px;  
  34. color: red;  
  35. font-size: 24px;  
  36. background-image: -webkit-gradient(linear, 0% 0%, 0% 100%,   
  37.                                    from(#fff), to(#f00));  
  38. background-image: -gradient(linear, 0% 0%, 0% 100%,   
  39.                             from(#fff), to(#f00));  
  40. -webkit-border-radius: 4px;border-radius: 4px;  

只要用戶將鼠標(biāo)懸停在 id 屬性是columns 或 line1 的 <div> 元素上,清單 1.4 中的前兩個(gè)選擇器就會(huì)創(chuàng)建一個(gè)動(dòng)畫效果。 兩個(gè)選擇器都使用 CSS3 函數(shù) scale()、skew() 和 rotate(),在三秒鐘時(shí)間間隔內(nèi)創(chuàng)建一個(gè)動(dòng)畫效果,如下所示:

  1. -webkit-transition: -webkit-transform 3.0s ease;  
  2. transition: transform 3.0s ease;    
  3. -webkit-transform : scale(0.5) skew(-20deg, -30deg) rotate(45deg); 

第二個(gè)選擇器還定義了一個(gè)線性漸變背景效果。

清單 1.4 中的 #columns 選擇器包含三個(gè)與布局相關(guān)的屬性。 column-count 屬性是 3,因此文本顯示為三列;column-gap 屬性是 80px,所以相鄰兩列之間的空間為 80 像素;column-rule 屬性指定一個(gè)白色背景。

#line1 選擇器指定一個(gè)線性漸變,在多列文本的上方和下方均創(chuàng)建一種漂亮的視覺(jué)效果。

圖 1.2 顯示應(yīng)用 MultiColumns.css 中的 CSS 選擇器,在 HTML 頁(yè)面 MultiColumns.html 中渲染多列文本的結(jié)果。

圖 1.2 CSS3 中的多列文本

圖 1.2 CSS3 中的多列文本

CSS3 3D 動(dòng)畫效果

正如您現(xiàn)在已經(jīng)知道的,CSS3 支持在不同的時(shí)間點(diǎn)使用關(guān)鍵幀創(chuàng)建動(dòng)畫效果(和這些效果的持續(xù)時(shí)間)。 本節(jié)中的示例使用 CSS3 keyframe 規(guī)則和 CSS3 函數(shù) scale3d()、rotate3d()及translate3d() 的多種組合,以創(chuàng)建持續(xù)時(shí)間為四分鐘的一種動(dòng)畫效果。

清單1.5 顯示了 Anim240Flicker3DLGrad4.html 的內(nèi)容,它是一個(gè)非常簡(jiǎn)單的 HTML 頁(yè)面,其中包含四個(gè) <div> 元素。

清單 1.5 Anim240Flicker3DLGrad4.html

  1. <!DOCTYPE html> 
  2. <html lang=”en”> 
  3. <head> 
  4.   <title>CSS3 Animation Example</title> 
  5.   <meta charset="utf-8" /> 
  6.   <link href="Anim240Flicker3DLGrad4.css" rel="stylesheet" type="text/css"> 
  7. </head> 
  8.         
  9. <body>                     
  10.  <div id="outer">          
  11.   <div id="linear1">Text1</div> 
  12.   <div id="linear2">Text2</div> 
  13.   <div id="linear3">Text3</div> 
  14.   <div id="linear4">Text4</div> 
  15.  </div> 
  16. </body> 
  17. </html> 

清單 1.5 是一個(gè)非常簡(jiǎn)單的 HTML5 頁(yè)面,它包含相應(yīng)的 CSS 選擇器(如清單 1.6 所示)。 和平常一樣,真正復(fù)雜性發(fā)生在包含用于創(chuàng)建動(dòng)畫效果的代碼的 CSS 選擇器中。

由于Anim240Flicker3DLGrad4.css 是一個(gè)非常長(zhǎng)的代碼示例,清單 1.5 中只顯示了其中一部分代碼。但是,本文的可下載文件提供了完整的代碼。

清單 1.6 Anim240Flicker3DLGrad4.css

  1. @-webkit-keyframes upperLeft {  
  2.    0% {  
  3.       -webkit-transform: matrix(1.5, 0.5,  0.0, 1.5, 0, 0)  
  4.                          matrix(1.0, 0.0,  1.0, 1.0, 0, 0);  
  5.    }  
  6.    1% {  
  7.       -webkit-transform: translate3d(50px,50px,50px)  
  8.                          rotate3d(50,50,50,-90deg)  
  9.                          skew(-15deg,0) scale3d(1.25, 1.25, 1.25);  
  10.    }  
  11.    2% {  
  12.       -webkit-transform: matrix(1.0, 1.5, -0.5, 1.0, 0, 0)  
  13.                          matrix(0.5, 0.5,  0.5, 0.5, 0, 0);  
  14.    }  
  15.    25% {  
  16.       -webkit-transform: matrix(0.4, 0.5,  0.5, 0.3, 250, 50)  
  17.                          matrix(0.3, 0.5, -0.5, 0.4, 50, 150);  
  18.    }  
  19.    // similar code omitted  
  20.    90% {  
  21.       -webkit-transform: matrix(2.0, 0.5,  1.0, 2.0, 0, 0)  
  22.                          matrix(1.5, 0.0,  0.5, 2.5, 0, 0);  
  23.    }  
  24.    95% {  
  25.       -webkit-transform: translate3d(-50px,-50px,-50px)  
  26.                          rotate3d(-50,-50,-50, 120deg)  
  27.                          skew(135deg,0) scale3d(0.3, 0.4, 0.5);  
  28.    }  
  29.    96% {  
  30.       -webkit-transform: matrix(0.2, 0.3, -0.5, 0.5, 100, 200)  
  31.                          matrix(0.4, 0.5,  0.5, 0.2, 200, 50);  
  32.    }  
  33.    97% {  
  34.       -webkit-transform: translate3d(50px,-50px,50px)  
  35.                          rotate3d(-50,50,-50, 120deg)  
  36.                          skew(315deg,0) scale3d(0.5, 0.4, 0.3);  
  37.    }  
  38.    98% {  
  39.       -webkit-transform: matrix(0.4, 0.5,  0.5, 0.3, 200, 50)  
  40.                          matrix(0.3, 0.5, -0.5, 0.4, 50, 150);  
  41.    }  
  42.    99% {  
  43.       -webkit-transform: translate3d(150px,50px,50px)  
  44.                          rotate3d(60,80,100, 240deg)  
  45.                          skew(315deg,0) scale3d(1.0, 0.7, 0.3);  
  46.    }  
  47.    100% {  
  48.       -webkit-transform: matrix(1.0, 0.0,  0.0, 1.0, 0, 0)  
  49.                          matrix(1.0, 0.5,  1.0, 1.5, 0, 0);  
  50.    }  
  51. }  
  52. // code omitted for brevity  
  53. #linear1 {  
  54. font-size: 96px;  
  55. text-stroke: 8px blue;  
  56. text-shadow: 8px 8px 8px #FF0000;  
  57. width:  400px;  
  58. height: 250px;  
  59.  
  60. position: relative; top: 0px; left: 0px;  
  61.  
  62. background-image: -webkit-gradient(linear, 100% 50%, 0% 100%,   
  63.                                    from(#f00),   
  64.                                    color-stop(0.2, orange),   
  65.                                    color-stop(0.4, yellow),   
  66.                                    color-stop(0.6, blue),  
  67.                                    color-stop(0.8, green),   
  68.                                    to(#00f));  
  69. // similar code omitted  
  70. -webkit-border-radius: 4px;  
  71. border-radius: 4px;  
  72. -webkit-box-shadow:  30px 30px 30px #000;  
  73. -webkit-animation-name: upperLeft;  
  74. -webkit-animation-duration: 240s;  
  75. }  
  76. Listing 1.6 contains a Webkit-specific keyframe definition called upperLeft that starts with the following line:  
  77. @-webkit-keyframes upperLeft {  
  78. // percentage-based definitions go here  

#linear 選擇器包含您已經(jīng)看過(guò)的屬性,還有一個(gè)引用由 lowerLeft 標(biāo)識(shí)的 keyframe 的屬性,以及一個(gè)指定持續(xù)時(shí)間為 240 秒的屬性,如下所示:

  1. #linear1 {  
  2. // code omitted for brevity  
  3. -webkit-animation-name: lowerLeft;  
  4. -webkit-animation-duration: 240s;  

現(xiàn)在您已經(jīng)知道了如何將 keyframe 定義關(guān)聯(lián)到一個(gè)選擇器(然后選擇器又被應(yīng)用到一個(gè) HTML 元素選擇器),讓我們來(lái)看看 lowerLeft 的詳細(xì)定義,其中包含 19 個(gè)元素,指定不同的動(dòng)畫效果。 lowerLeft 的每一個(gè)元素在動(dòng)畫過(guò)程的特定階段發(fā)生。 例如,lowerLeft 中的第八個(gè)元素指定的值為 50%,這意味著它將在動(dòng)畫效果的中點(diǎn)處發(fā)生。 由于 #linear 選擇器包含一個(gè) –webkit-animation-duration 屬性,它的值是 240s(在清單 1.6 中以粗體顯示),這意味著動(dòng)畫將持續(xù) 4 分鐘,從 HTML5 頁(yè)面啟動(dòng)的時(shí)間點(diǎn)開始計(jì)算。

lowerLeft 的第八個(gè)元素指定平移、旋轉(zhuǎn)、斜切和縮放效果(所有這一切都以三維表示),其示例如下所示:

  1. 50% {  
  2.    -webkit-transform: translate3d(250px,250px,250px)  
  3.                       rotate3d(250px,250px,250px,-120deg)  
  4.                       skew(-65deg,0) scale3d(0.5, 0.5, 0.5);  

動(dòng)畫效果按順發(fā)生,從平移開始,以縮放效果結(jié)束,對(duì)于 lowerLeft 中的其他元素也同樣如此。

圖 1.3 顯示將在 CSS3 樣式表 Anim240Flicker3DLGrad4.css中定義的 CSS3 選擇器應(yīng)用到HTML 頁(yè)面 Anim240Flicker3DLGrad4.html 中 HTML 元素的初始視圖。

圖 1.3: 應(yīng)用 CSS3 樣式表中定義的 CSS3 選擇器的初始視圖。

圖 1.3: 應(yīng)用 CSS3 樣式表中定義的 CSS3 選擇器的初始視圖。

下一步閱讀方向

您可以在以下網(wǎng)址找到更多 CSS3 和 HTML5 Canvas 的代碼示例:

http://code.google.com/p/css3-graphics/

http://code.google.com/p/html5-canvas-graphics/

本文中的示例和文本摘自我的書 HTML5 Canvas and CSS3 Graphics Primer,該書還介紹了如何渲染貝塞爾曲線,應(yīng)用顏色和漸變,轉(zhuǎn)換 2D 形狀和 JPG 文件,創(chuàng)建動(dòng)畫效果,創(chuàng)建 2D/3D 條形圖和線形圖, 處理鼠標(biāo)事件,以及井字游戲的原理。 隨書附送的 DVD 包含了書中所有源代碼和彩色圖形。HTML5 Canvas and CSS3 Graphics Primer 包含了 CSS3、HTML5 Canvas 和 SVG 的代碼示例。

本文內(nèi)容僅用于演示,已獲得版權(quán)所有者 Mercury Learning 的許可。 本文沒(méi)有授予任何其他權(quán)利。

 

責(zé)任編輯:Yeva 來(lái)源: adobe.com
相關(guān)推薦

2023-05-03 09:01:41

CanvasWebGL

2022-05-23 10:26:10

人工智能機(jī)器學(xué)習(xí)機(jī)器視覺(jué)

2011-09-22 10:07:52

奧圖碼投影儀

2011-05-03 11:07:46

2D3D麗訊

2020-08-26 10:37:21

阿里3D

2022-07-13 10:20:14

自動(dòng)駕駛3D算法

2021-11-08 06:02:17

CSS 技巧代碼重構(gòu)

2022-06-14 07:51:10

Godot游戲引擎

2025-03-27 09:26:30

2012-02-24 09:11:45

jQuery

2021-06-09 08:30:52

CSS33D旋轉(zhuǎn)視圖3D動(dòng)畫

2021-08-30 06:20:39

CSS 技巧3D 效果

2012-11-07 09:43:58

IBMdw

2021-01-05 08:10:00

Css前端3D旋轉(zhuǎn)透視

2021-04-01 06:23:24

CSS33D3D Web 動(dòng)畫

2010-06-09 16:21:10

OpenSUSE界面

2024-12-10 09:40:00

AI3D模型

2017-09-19 14:05:24

web

2016-12-07 13:25:08

CSS33D渲染

2021-09-16 07:52:18

SwiftUScroll效果
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

亚洲国产成人tv| 午夜日韩电影| 色狠狠色噜噜噜综合网| 日韩高清国产一区在线观看| 欧美男人天堂网| 色中色综合网| 91麻豆精品国产91久久久 | 精品一区久久| 国产性生活视频| 日韩一区二区三区免费播放| 日韩欧美综合在线| 欧美老熟妇喷水| 又爽又大又黄a级毛片在线视频| 麻豆久久一区二区| 欧美激情奇米色| 中文字幕在线免费看线人| 欧美日韩在线精品一区二区三区激情综合 | 欧美亚洲另类久久综合| 久久这里只有精品9| 影音先锋成人在线电影| 精品蜜桃在线看| 日本中文字幕片| 韩国中文字幕在线| 久久综合色之久久综合| 成人网在线视频| 尤物视频在线观看国产| 天天射综合网视频| 日韩二区三区在线| 91视频福利网| 色婷婷综合久久久中字幕精品久久| 欧美激情一区二区在线| 国产精品免费一区二区三区四区 | av电影天堂一区二区在线| 国产精品av在线播放| 久久久久免费看| 日韩精品欧美激情一区二区| 亚洲成色www8888| 中文字幕一区久久| 婷婷激情一区| 婷婷综合另类小说色区| 亚洲成年人专区| 久久经典视频| 99国产精品视频免费观看| 成人国产精品日本在线| 黄色在线视频网址| 99国产精品自拍| 欧美成人免费网| 国产又粗又猛又爽又黄的视频四季 | 黄色精品免费看| 亚洲欧美强伦一区二区| 国产成人3p视频免费观看| 日韩精品一区二区三区在线播放 | 香蕉久久国产| 欧美福利视频网站| 国产成人av免费在线观看| 精品国产一区探花在线观看| 日韩电视剧免费观看网站| 性一交一黄一片| 999精品视频在线观看| 欧美视频你懂的| 不卡av免费在线| 国产欧美一区二区三区精品酒店| 亚洲宅男天堂在线观看无病毒| 色综合久久av| 99re在线视频| 亚洲国产精品99久久久久久久久| 精品欧美一区二区在线观看视频 | 福利成人在线观看| 国产亚洲午夜高清国产拍精品 | 国产一区二区三区日韩| 国产精品欧美一区二区三区奶水| 久久亚洲天堂网| 99热免费精品| 欧美亚洲第一页| 国产91精品一区| 翔田千里一区二区| 国产成人久久久| 波多野结衣视频观看| 日本不卡不码高清免费观看| 国产免费一区二区三区香蕉精| 69亚洲精品久久久蜜桃小说| 丝袜美腿高跟呻吟高潮一区| 国产精品久久久久久网站 | 在线观看视频一区二区欧美日韩| 播放灌醉水嫩大学生国内精品| 欧美xxxx免费虐| 无吗不卡中文字幕| 亚洲中文字幕久久精品无码喷水| 中文字幕在线中文字幕在线中三区| 香蕉乱码成人久久天堂爱免费| 国产精品久久久久9999爆乳| 欧美freesex黑人又粗又大| 色综合久久久网| 少妇网站在线观看| 久久在线观看| 亚洲白虎美女被爆操| 亚洲精品理论片| 国产一区二区三区日韩精品 | 嫩草研究院在线| 国产精品网站在线观看| 国产91在线亚洲| 国产伦理精品| 欧美日韩成人高清| 亚洲の无码国产の无码步美| 九九在线高清精品视频| 久久精品国产成人| 日本在线视频免费观看| 日本美女视频一区二区| 99免费在线观看视频| 久久av少妇| 一区二区三区在线视频免费观看 | 国产人妖在线观看| 亚洲欧洲av| 日韩亚洲一区二区| 国产精品6666| 免费在线视频一区| 狠狠色综合一区二区| av在线电影观看| 亚洲一级片在线观看| 我看黄色一级片| www.丝袜精品| 中日韩美女免费视频网址在线观看| 国产又粗又长又黄的视频| 亚洲国产专区校园欧美| 国产在线精品成人一区二区三区| 亚洲第一视频在线| 国产精品水嫩水嫩| 免费欧美一级视频| 一区二区三区在线资源| 少妇av一区二区三区| 国产成人在线观看网站| 国产精品一区专区| 亚洲国产激情一区二区三区| 九色porny丨首页入口在线| 91精品国产手机| 免费看污片的网站| 国产日韩欧美一区| 成人av蜜桃| 人人干在线视频| 色av成人天堂桃色av| 99久久久无码国产精品性波多| 日本女优一区| 欧美孕妇与黑人孕交| 丰满岳乱妇国产精品一区| 中文字幕视频一区| 污色网站在线观看| 精品久久久久久久| 国产97色在线| 偷拍25位美女撒尿视频在线观看| 亚洲精品中文在线影院| 99国产精品久久久久久| 国产探花在线精品| 奇米4444一区二区三区| 日本在线视频1区| 五月婷婷色综合| 欧美图片自拍偷拍| 韩国久久久久| 动漫美女被爆操久久久| 成视频免费观看在线看| 欧美剧情片在线观看| 亚欧精品视频一区二区三区| 日本视频一区二区三区| 水蜜桃一区二区三区| 搜成人激情视频| 亚洲人成电影在线播放| 国产一区二区视频免费| 久久精品人人爽人人爽| 日韩免费高清在线| 成人羞羞视频播放网站| 国产精品一区二区久久| 欧美成人二区| 欧美一区二区三区视频在线 | www.成人爱| 亚洲乱码av中文一区二区| 天天操天天摸天天干| 91蜜桃免费观看视频| 日韩精品一区二区三区久久| 久久91成人| 国产精品电影久久久久电影网| 免费在线国产| 欧美日精品一区视频| 亚洲一级生活片| 国产成人精品一区二区三区四区 | 在线观看亚洲区| 中文字幕乱码一区二区| 亚洲三级视频在线观看| 女性生殖扒开酷刑vk| 国产日韩欧美在线播放不卡| 日本中文不卡| 96sao精品免费视频观看| 欧美成人精品xxx| 手机在线不卡av| 色八戒一区二区三区| 日韩一卡二卡在线观看| 成人性生交大片免费看中文| 欧美女人性生活视频| 成人三级视频| 97免费资源站| av资源亚洲| 日韩有码片在线观看| 亚洲第一色网站| 色综合久久99| 国产极品美女在线| 99久久精品国产精品久久| 男女无套免费视频网站动漫| 伊人久久大香线蕉精品组织观看| 国产日产精品一区二区三区四区| 欧美大胆a人体大胆做受| 色av中文字幕一区| 刘亦菲久久免费一区二区| 在线一区二区三区四区| 久久97人妻无码一区二区三区| gogo大胆日本视频一区| 在线观看日本一区二区| 99亚洲视频| 欧美h视频在线观看| 亚洲瘦老头同性70tv| 1卡2卡3卡精品视频| 亚洲人免费短视频| 97色伦亚洲国产| 午夜在线播放| 精品小视频在线| 国产黄色小视频在线观看| 色美美综合视频| 久久这里只有精品国产| 国产精品乱码人人做人人爱| 中文在线一区二区三区| 国产精品中文字幕日韩精品| 男人透女人免费视频| 亚洲人成人一区二区三区| 国产精品av免费| 黄色不卡一区| 久久久www免费人成黑人精品| 日日夜夜亚洲精品| 国产成人精品午夜| 欧美男人天堂| 久久久久久国产精品三级玉女聊斋| 国产在线你懂得| 亚洲精品v天堂中文字幕| 国产欧美久久久| 欧美日韩一区二区电影| 无码人妻精品一区二区三区9厂 | 日韩免费看网站| 136福利视频导航| 在线观看av不卡| 好看的av在线| 大桥未久av一区二区三区| 久久久久99精品| 亚洲男人天堂一区| 视频国产一区二区| 国产精品久久久久久一区二区三区 | 久久看人人爽人人| 又黄又色的网站| 国产精品18久久久久| 三日本三级少妇三级99| 久草在线在线精品观看| 国产又大又黄又猛| 老鸭窝一区二区久久精品| 免费一级特黄录像| 奇米影视在线99精品| 欧美视频免费播放| 久久狠狠婷婷| 日日碰狠狠躁久久躁婷婷| 久久精品九九| 国产精品涩涩涩视频网站| 美女诱惑黄网站一区| 不要播放器的av网站| 日日摸夜夜添夜夜添亚洲女人| 男人日女人逼逼| 国产视频一区三区| 男人亚洲天堂网| 日韩二区在线观看| 91制片厂毛片| 久久99国产精品免费| 国产资源中文字幕| 成人av网在线| 久久只有这里有精品| 国产片一区二区| 免费看一级黄色| 一区二区在线电影| 免费观看成人毛片| 欧洲色大大久久| 91精品国产乱码久久久| 日韩视频免费直播| 日本人妻熟妇久久久久久| 亚洲精品在线91| 91福利在线视频| 欧美成aaa人片免费看| 岛国片av在线| 日韩av成人在线| www欧美在线观看| 国产精品久久亚洲7777| 精品国产乱码久久久久久果冻传媒 | 国产精品视频午夜| 一区二区三区| 好看的日韩精品| 欧美一级精品| 真人做人试看60分钟免费| 国产日韩亚洲欧美精品| 在线观看岛国av| 成人免费视频一区| 91视频免费观看网站| 亚洲视频一区在线| 日韩免费一级片| 欧美在线观看禁18| 亚洲精品97久久中文字幕| 亚洲欧美日韩网| 国产精品一区二区三区视频网站| 久久理论片午夜琪琪电影网| 国产精品字幕| 国产伦精品一区二区三区照片91| 久久综合欧美| 九一免费在线观看| 日韩高清在线不卡| 污污污www精品国产网站| 国产精品美女久久久久高潮| 日本在线观看视频网站| 欧美精三区欧美精三区| 青青操视频在线| 欧美大片在线看| 福利视频一区| 久久久com| 欧美国产高潮xxxx1819| 日韩av片网站| 91香蕉视频在线| 欧美日韩国产精品综合| 欧美午夜精品久久久久久孕妇| 国产99久久九九精品无码免费| 亚洲精品狠狠操| av大全在线| 国产精品自产拍在线观看中文| 青草久久视频| 亚洲啊啊啊啊啊| 精品一区二区三区香蕉蜜桃| 精品人妻无码一区二区三区| 亚洲高清视频中文字幕| 国产三级视频在线播放| 日韩中文字幕在线看| 51一区二区三区| 欧美日韩在线精品| 午夜在线播放视频欧美| 久久性爱视频网站| 一区二区三区成人| 99久久精品无免国产免费| 日韩视频在线免费观看| 成人黄色视屏网站| 亚洲成人一区二区三区| 久久综合影视| 中文字幕一区二区三区人妻| 婷婷一区二区三区| 天天干天天色天天| 韩国国内大量揄拍精品视频| 99热这里只有精品首页 | 日本中文字幕二区| 国产精品天天看| 亚洲综合成人av| 国产亚洲精品高潮| 日韩网站中文字幕| 日韩av不卡播放| 日本va欧美va欧美va精品| 国产肥白大熟妇bbbb视频| 日本精品一区二区三区高清| 国产中文字幕在线看| 国产aaa精品| 九色精品91| 中国黄色片免费看| 亚洲日本在线观看| 亚洲av无码一区二区三区dv| 欧美裸体xxxx极品少妇| 国产精品成人自拍| 337p粉嫩大胆噜噜噜鲁| 久久久不卡网国产精品二区| 最近中文字幕在线观看视频| 日韩中文在线中文网三级| 国产午夜亚洲精品一级在线| 成人av在线不卡| 成av人片一区二区| www.毛片.com| 伊人久久久久久久久久久| 91精品一久久香蕉国产线看观看| 国产日本欧美在线| 成人午夜视频免费看| 欧美 日韩 精品| 一区二区三区www| 国产高清视频一区二区| 亚洲人精品午夜射精日韩| 久久综合五月天婷婷伊人| 亚洲视频中文字幕在线观看| 久久国产精品视频| 欧美调教在线| 亚洲不卡视频在线| 亚洲制服丝袜在线| 国产在线一二三区| 91免费观看| 久久久久欧美精品| 中文字幕五月天| 亚洲精品福利在线| 亚洲视频自拍| 女人天堂av手机在线| 国产精品久久久久aaaa|