精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
CSS動畫實例:小圓球的海洋

      CSS背景屬性用于定義HTML元素的背景,在CSS提供的背景屬性中,

background-image:指定要使用的一個或多個背景圖像;

background-color:指定要使用的背景顏色

background-position:指定背景圖像的位置;

background-size:指定背景圖片的大小;

background-repeat:指定如何重復背景圖像;

background-origin  指定背景圖像的定位區域;

background-clip     指定背景圖像的繪畫區域;

background-attachment  設置背景圖像是否固定或者隨著頁面的其余部分滾動。

下面我們以小圓球的海洋作為實例來體會背景動畫的設計方法。

1.CSS3 徑向漸變

      在CSS3中,可以使用radial-gradient() 函數以徑向漸變的方式創建背景圖像。徑向漸變由它的中心定義。其調用格式為:

          background-image: radial-gradient(shape size at position, start-color, ..., last-color);

      各參數說明如下:

      shape確定漸變的類型,屬性值ellipse(默認)指定橢圓形的徑向漸變,circle指定圓形的徑向漸變。

      size  定義漸變的大小,可取屬性值有:

             farthest-corner(默認):指定徑向漸變的半徑長度為從圓心到離圓心最遠的角;

             closest-side:指定徑向漸變的半徑長度為從圓心到離圓心最近的邊;

             closest-corner:指定徑向漸變的半徑長度為從圓心到離圓心最近的角;

             farthest-side:指定徑向漸變的半徑長度為從圓心到離圓心最遠的邊。

       position   定義漸變的位置。可取屬性值有:

             center(默認):設置中間為徑向漸變圓心的縱坐標值;

             top:設置頂部為徑向漸變圓心的縱坐標值;

            bottom:設置底部為徑向漸變圓心的縱坐標值。

       start-color,…,last-color用于指定漸變的起止顏色,可以使用長度值或百分比來指定起止色位置,但不允許負值。

       設頁面中有<div class="shape"></div>,定義.shape的樣式規則如下:

  .shape

  {    

    width:200px;

    height:150px;

    background-image: radial-gradient(red, green, blue);

  }

       可在頁面中顯示如圖1所示的徑向漸變圖案。在這個徑向漸變中顏色結點分布均勻。

 

圖1  徑向漸變圖(顏色結點分布均勻)

       若改寫為:background-image: radial-gradient(red 5%, green 15%, blue 60%);,則顯示的圖案如圖2所示。

 

圖2  徑向漸變圖(顏色結點分布不均勻)

      若改寫為:background-image: radial-gradient(closest-side at 60% 50%, red, green, blue);,則顯示如圖3所示的圖案。

 

圖3  徑向漸變圖

      若改寫為:background-image: radial-gradient(circle, red, green, blue);,則顯示如圖4所示的圖案。

 

圖4  圓形徑向漸變圖

若修改.shape的樣式定義為:

  .shape

  {    

    width:200px;

    height:200px;

    border-radius:50%;

    background-image: radial-gradient(circle, red,yellow,blue);

  }

可在頁面中顯示如圖5所示的圓形。

圖5  圓形

2.小圓球一分為四

      設頁面中有<div class="ocean"></div>,為.ocean定義樣式規則如下:

  .ocean

  {

     margin: 0 auto;

     width:450px;

     height: 450px;

     border: 4px solid rgba(255, 0, 0, 0.9);

     border-radius: 10%;

     background-image: radial-gradient(circle at center, #f5f6fa 10px, transparent 0),

                     radial-gradient(circle at center, #f5f6fa 10px, transparent 0),

                     radial-gradient(circle at center, #f5f6fa 10px, transparent 0),

                     radial-gradient(circle at center, #f5f6fa 10px, transparent 0);

     background-size: 90px 90px;

     background-color: #0652dd;

     background-repeat:no-repeat;

  }

      則頁面中的顯示如圖6所示。background-image后定義了四個徑向漸變圖像,由于沒有給它們指定位置,會疊放在一起,因而顯示為一個小圓球。小圓球的圓心坐標為(45px,45px)。

圖6  一個白色小圓球

       為這四個小圓球指定位置,在.ocean樣式定義中加上如下屬性設置:

     background-position: calc(50% + 0px) calc(50% + 0px),

                          calc(50% + 0px) calc(50% + 90px),

                          calc(50% + 90px) calc(50% + 0px),

                          calc(50% + 90px) calc(50% + 90px);

       則頁面中的顯示如圖7所示。

 

圖7  4個小圓球

      為從圖6至圖7的變化定義關鍵幀,使小球由一分成四,編寫的HTML文件內容如下。

<!DOCTYPE html>
<html>
<head>
<title>小圓球一分為四</title>
<style>
  .ocean 
  {
     margin: 0 auto;
     width:450px;
     height: 450px;
     border: 4px solid rgba(255, 0, 0, 0.9);
     border-radius: 10%;
     background-image: radial-gradient(circle at center, #f5f6fa 10px, transparent 0), 
                     radial-gradient(circle at center, #f5f6fa 10px, transparent 0), 
                     radial-gradient(circle at center, #f5f6fa 10px, transparent 0), 
                     radial-gradient(circle at center, #f5f6fa 10px, transparent 0);
     background-size: 90px 90px;
     background-color: #0652dd;
     animation: anim 2s infinite linear;
     background-repeat:no-repeat;
  }
  @keyframes anim 
  {
     to
     {
         background-position: calc(50% + 0px) calc(50% + 0px), 
                              calc(50% + 0px) calc(50% + 90px), 
                              calc(50% + 90px) calc(50% + 0px), 
                              calc(50% + 90px) calc(50% + 90px);
     }
  }
</style>
</head>
<body>
<div class="ocean"></div>
</body>
</html>
View Code

      在瀏覽器中打開包含這段HTML代碼的html文件,可以呈現出如圖8所示的動畫效果。

 

圖8  小圓球一分為四(no-repeat)

       若將上面樣式定義中的background-repeat:no-repeat;去掉,此時背景圖像將向垂直和水平方向重復,則呈現出如圖9所示的動畫效果。

 

圖9  小圓球一分為四(repeat)

3.小圓球的海洋

      理解了圖8和圖9的動畫思想,我們繼續。

       為4個小圓球指定好初始位置,然后將各自的終止位置略作變化。編寫如下的HTML文件。

<!DOCTYPE html>
<html>
<head>
<title>小圓球的海洋</title>
<style>
  .ocean 
  {
     margin: 0 auto;
     width:450px;
     height: 450px;
     border: 4px solid rgba(255, 0, 0, 0.9);
     border-radius: 10%;
     background-image: radial-gradient(circle at center, #f5f6fa 10px, transparent 0), 
                       radial-gradient(circle at center, #f5f6fa 10px, transparent 0), 
                       radial-gradient(circle at center, #f5f6fa 10px, transparent 0), 
                       radial-gradient(circle at center, #f5f6fa 10px, transparent 0);
     background-position: calc(50% + 0px) calc(50% + 0px), 
                          calc(50% + 0px) calc(50% + 90px), 
                          calc(50% + 90px) calc(50% + 90px), 
                          calc(50% + 90px) calc(50% + 0px);
     background-size: 90px 90px;
     background-color: #0652dd;
     animation: anim 2s infinite linear;
     background-repeat:no-repeat;
  }
  @keyframes anim 
  {
     to 
     {
         background-position:calc(50% + 90px) calc(50% + 0px), 
                             calc(50% + 0px) calc(50% + 0px), 
                             calc(50% + 0px) calc(50% + 90px), 
                             calc(50% + 90px) calc(50% + 90px);
     }
  }
</style>
</head>
<body>
<div class="ocean"></div>
</body>
</html>
View Code

      在瀏覽器中打開包含這段HTML代碼的html文件,可以呈現出如圖10所示的動畫效果。

 

圖10  旋轉的4個小圓球

      同樣將樣式定義中的background-repeat:no-repeat;去掉,此時背景圖像將向垂直和水平方向重復,則呈現出如圖11所示的動畫效果。

 

圖11  小圓球的海洋(1)

       若在圖11的基礎上,在關鍵幀to中加上一句background-size: 180px 180px;,使得關鍵結束幀的背景大小擴大1倍,則呈現出如圖12所示的動畫效果。

 

圖12  小圓球的海洋(2)

      在關鍵幀to中加上的一句為background-size: 45px 45px;,使得關鍵結束幀的背景大小縮小1倍,且將radial-gradient四個函數中的10px均修改為8px,使得小圓球也適當變小,則呈現出如圖13所示的動畫效果。

 

圖13  小圓球的海洋(3)

      將整個屏幕作為背景,顯示歡樂的小圓球,編寫的HTML文件如下。

<!DOCTYPE html>
<html>
<head>
<title>滿屏都是小圓球</title>
<style>
  body 
  {
     min-height: 100vh;
     background-image: radial-gradient(circle at center, #f5f6fa 1vmin, transparent 0), 
                       radial-gradient(circle at center, #f5f6fa 1vmin, transparent 0), 
                       radial-gradient(circle at center, #f5f6fa 1vmin, transparent 0), 
                       radial-gradient(circle at center, #f5f6fa 1vmin, transparent 0);
     background-position: calc(50% + 0vmin) calc(50% + 0vmin), 
                          calc(50% + 0vmin) calc(50% + 15vmin),                          
                          calc(50% + 15vmin) calc(50% + 15vmin),
                          calc(50% + 15vmin) calc(50% + 0vmin);
     background-size: 15vmin 15vmin;
     animation: anim 2s infinite linear;
     background-color: #0652dd;
  }
  @keyframes anim 
  {
     to 
     {
        background-size: 30vmin 30vmin;
        background-position: calc(50% + 15vmin) calc(50% + 0vmin), 
                             calc(50% + 0vmin) calc(50% + 0vmin), 
                             calc(50% + 0vmin) calc(50% + 15vmin), 
                             calc(50% + 15vmin) calc(50% + 15vmin);
     }
  }
</style>
</head>
<body>
</body>
</html>
View Code

      在瀏覽器中打開包含這段HTML代碼的html文件,可以呈現出如圖14所示的動畫效果。

 

圖14  滿屏都是歡樂的小圓球

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
這些css技巧,你肯定不會全知道【建議收藏】
一篇文章帶你了解CSS 漸變知識
css 背景色漸變
如何制作風火效
CSS3 線性漸變
【聊代碼】第五十二集 css樣式(之二十二)
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 同德县| 铜梁县| 北海市| 芜湖县| 怀化市| 沾化县| 丹江口市| 吴桥县| 吕梁市| 会理县| 长岭县| 大英县| 扎鲁特旗| 新兴县| 新晃| 磐安县| 屏山县| 和林格尔县| 金湖县| 塔河县| 尼勒克县| 宜章县| 大名县| 安化县| 兴业县| 长顺县| 杭锦后旗| 盐山县| 海盐县| 龙陵县| 平山县| 包头市| 枣阳市| 嘉义市| 锦州市| 安丘市| 八宿县| 阳城县| 泰安市| 定安县| 蓝山县|