整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          如何使用CSS開發精美3D旋轉相冊?

          助CSS所提供的animation動畫屬性及2D、3D變換屬性,我們可以擺脫對JavaScript的依賴,設計開發各類效果優秀的前端動態效果,在之前文章和視頻中我們也介紹了不少基于CSS與JavaScript技術實現的各類動畫及頁面元素設計效果。本文主要介紹使用CSS技術實現精美的3D旋轉相冊效果。主要實現效果動畫展示如下:

          純CSS技術實現旋轉相冊效果展示


          核心技術說明

          本例開發主要涉及使用技術包括animation動畫屬性、keyframes關鍵幀、transform變形等相關知識及方法、技術。部分核心技術說明如下:

          1、CSS自定義屬性(變量)

          在使用CSS進行樣式定義時,可以使用自定義屬性,即變量。從變量而言考慮的話,會涉及到變量的定義、賦值與使用等。自定義屬性的聲明使用--表示。其賦值與style樣式其他屬性類似可通過:(冒號)進行賦值。在使用該自定義屬性時需要用var()函數對屬性名進行包裹。如在自定義變量需要進行數學運算時需要使用calc()方法。自定義屬性實例如下:

          :root{--fontSize:2em;}
          p{font-size:var(--fontSize);}

          CSS自定義屬性使用實例如上所示,我們定義了一個fontSize變量,在P元素選擇器中使用了該定義的變量,即設置P段落字體size為2em。

          2、3D變換屬性與方法

          實現3D效果需要使用3D變換相關屬性與方法,其主要屬性方法包括transform-origin(旋轉原點)、transform-style(旋轉類型2D/3D)、perspective(透視點)等屬性,主要方法包括translate位移、scale放縮、rotate旋轉與skew扭曲等。使用實例代碼如下:

          position: absolute;//定位
          transform-origin: center;//中心點
          transform-style: preserve-3d;//類型
          transform: 
          translateZ(400px) rotateY(60deg);
          //沿Z軸移動400px,沿Y軸旋轉60度

          3、flex布局

          本例需要使用flex布局用于實現將頁面元素在頁面中位置進行定位與布局設置,主要設置水平與垂直居中效果,實例代碼如下:

          display: flex;
          justify-content: center;
          align-items: center;

          設計與實現

          在明確以上基本技術點之后,我們就可以收集素材完整3D旋轉相冊的設計與制作。首先第一步就是素材的采集,本例所需圖片如下所示:

          3D旋轉相冊圖片素材

          在完成素材搜集基礎上就可以使用CSS頁面布局技術等,實現頁面的布局,通過旋轉變換,將10張圖片進行不同角度的分布。其中頁面布局代碼如下:

          頁面布局代碼

          完成頁面元素設置之后,就要考慮頁面布局問題,本例需要實現旋轉因此需要將每一個圖片所對應元素進行旋轉等變換設置。部分代碼如下:

          CSS樣式設置

          核心CSS樣式設置如上圖所示,其中我們定義了動畫animate,因此需要使用keyframes對其關鍵幀進行定義,關鍵幀定義如下:

          動畫關鍵幀定義

          通過關鍵幀定義之后,整個gallery層就會繞著y軸進行旋轉最終實現動態旋轉效果。本例靜態展示如下圖所示:

          3D旋轉相冊靜態效果展示

          以上給出了3D旋轉相冊設計及實現過程核心知識點及實現思路過程、核心代碼說明。如需完整代碼請關注并私信。


          本頭條號長期關注編程資訊分享;編程課程、素材、代碼分享及編程培訓。如果您對以上方面有興趣或代碼錯誤、建議與意見,可在評論區回復。更多程序設計相關教程及實例分享,期待大家關注與閱讀!

          <!DOCTYPE html>
          <html>
          <head>
          <meta charset="UTF-8" />
          <title>Document</title>
          <style type="text/css">
          body{
              background: #f14849;
          }
          div{
              position: relative;
              width: 300px;
              height: 300px;
              margin:100px auto;
          }
          div img{
              position: absolute;
              top:0;
              left:0;
              transition:all 1s;
              backface-visibility:hidden;
          }
          /*
          1、先把背面(bg01)的圖片,先翻轉180deg 隱藏
          2、鼠標移入,讓前面(bg02)的圖片,翻轉180deg 隱藏
          3、再讓bg01 翻轉回0deg
          */
          div img:nth-of-type(1){transform:rotateY(180deg);}
              div:hover img:nth-of-type(2){
              transform:rotateY(180deg);
          }
          div:hover img:nth-of-type(1){
              transform:rotateY(0deg);
          }
          </style>
          </head>
          <body>
          <div>
          <img src="img/bg01.png" >
          <img src="img/bg02.png" >
          </div>
          </body>
          </html>

          片規格: 300px * 300px

          avaScript案例講解:3D相冊拖拽旋轉

          知識點:利用for循環動態布局,獲取元素,css3與js的結合,3D場景的打造,JS加載問題,編程思維,定時器,鼠標事件,event事件。

          效果圖:

          拖拽可旋轉


          主站蜘蛛池模板: 无码日韩人妻AV一区免费l| 国产剧情国产精品一区| 国产综合视频在线观看一区| 亚洲av不卡一区二区三区| 2020天堂中文字幕一区在线观| 日韩美一区二区三区| 亚洲高清一区二区三区电影| 无码国产精品一区二区免费I6| 国产精品无码一区二区在线观| 国产福利电影一区二区三区,亚洲国模精品一区 | 91一区二区视频| 国产在线精品一区二区三区直播| 精品一区二区三区四区在线播放| 亚洲国产成人精品久久久国产成人一区二区三区综 | 国产伦精品一区三区视频| 国产在线乱子伦一区二区| 亚洲一区在线观看视频| 亚洲午夜精品一区二区公牛电影院 | 中文字幕在线观看一区| 痴汉中文字幕视频一区| 日本一道高清一区二区三区| 亚洲老妈激情一区二区三区| 好爽毛片一区二区三区四| 亚洲国产成人一区二区三区| AV怡红院一区二区三区| 日本韩国一区二区三区| 怡红院美国分院一区二区| 欧美亚洲精品一区二区| 中文字幕无码不卡一区二区三区 | 亚洲av无码一区二区三区天堂| 一区二区免费视频| 精品视频一区二区三三区四区| 一区二区在线视频免费观看| 国产免费av一区二区三区| 一区二区三区在线观看视频| 国产精品区AV一区二区| 日韩视频一区二区三区| 清纯唯美经典一区二区| 99精品一区二区三区| 色综合视频一区二区三区44| 国产乱子伦一区二区三区|