日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

transform 属性 实现旋转木马效果

發(fā)布時間:2023/12/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 transform 属性 实现旋转木马效果 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

搭建舞臺

...<style type="text/css">.main{width: 900px;min-height: 100px;margin:0 auto;padding: 100px 50px;background-color: #f0f0f0;box-shadow: inset 0 0 3px rgba(0,0,0,.35);position: relative;top: 0;display: flex;justify-content: center;}.container{width: 128px;height: 100px;position: relative;}.inner{width: 128px;height: 100px;box-shadow: 0 1px 3px rgba(0,0,0,.5);position: absolute;bottom: 0;}.inner:nth-child(1) { transform: rotateY( 0deg );background-color: #ccffff; }.inner:nth-child(2) { transform: rotateY( 40deg );background-color: #ccccff; }.inner:nth-child(3) { transform: rotateY( 80deg );background-color: #99ffff; }.inner:nth-child(4) { transform: rotateY( 120deg );background-color: #99ffcc; }.inner:nth-child(5) { transform: rotateY( 160deg );background-color: #ffccff; }.inner:nth-child(6) { transform: rotateY( 200deg );background-color: #ffcccc; }.inner:nth-child(7) { transform: rotateY( 240deg );background-color: #ffffcc; }.inner:nth-child(8) { transform: rotateY( 280deg );background-color: #ccff00; }.inner:nth-child(9) { transform: rotateY( 320deg );background-color: #99ff00; }</style>...<!-- 舞臺 --><div class="main"><!-- 容器 --><div id="container" class="container"><div class="inner"></div><div class="inner"></div><div class="inner"></div><div class="inner"></div><div class="inner"></div><div class="inner"></div><div class="inner"></div><div class="inner"></div><div class="inner"></div></div></div>...

效果圖

  • 我們對方塊設(shè)置了按Y軸進行旋轉(zhuǎn),看見的只是方塊變小,沒有按Y軸旋轉(zhuǎn)。是因為現(xiàn)在還是處于2D視角,沒有透視效果。

加入 perspective 屬性

  • perspective 屬性 指定了觀察者與 z = 0 平面的距離,使具有三維位置變換的元素產(chǎn)生透視效果。
  • perspective 屬性只影響 3D 轉(zhuǎn)換元素。
  • 透視點是在瀏覽器的前方,所以perspective 屬性設(shè)置后值后,元素會進大遠小。
  • 默認情況下,消失點位于元素的中心(視點),但是可以通過設(shè)置 perspective-origin 屬性來改變其位置。
  • ....main{...-webkit-perspective: 800px;-moz-perspective: 800px;perspective: 800px;}...

    效果圖

    • 添加屬性后就能看見,方塊的旋轉(zhuǎn)效果了。
    • 這時可以看見其他方塊被最后一個方塊遮住。這是因為方塊是在2D空間旋轉(zhuǎn)的。

    加入 transform-style 屬性

  • 屬性 transform-style 設(shè)置元素的子元素是位于 3D 空間中還是平面中。
  • 值 flat | preserve-3d。flat元素的子元素位于該元素的平面中,preserve-3d元素的子元素應(yīng)位于 3D 空間中。
  • ....container{...-webkit-transform-style: preserve-3d;-moz-transform-style: preserve-3d;transform-style: preserve-3d;} ...

    效果圖

    • 這里就按我們的要求,所有方塊都按y軸旋轉(zhuǎn)了。
    • 不過現(xiàn)在都是擠在一起的。就要使用transform 屬性讓方塊分散開來。

    加入 translateZ() 函數(shù)

  • 修改元素 z軸 在三維空間的位置。
  • ....inner:nth-child(1) { transform: rotateY( 0deg ) translateZ(200px);background-color: #ccffff; }.inner:nth-child(2) { transform: rotateY( 40deg ) translateZ(200px);background-color: #ccccff; }.inner:nth-child(3) { transform: rotateY( 80deg ) translateZ(200px);background-color: #99ffff; }.inner:nth-child(4) { transform: rotateY( 120deg ) translateZ(200px);background-color: #99ffcc; }.inner:nth-child(5) { transform: rotateY( 160deg ) translateZ(200px);background-color: #ffccff; }.inner:nth-child(6) { transform: rotateY( 200deg ) translateZ(200px);background-color: #ffcccc; }.inner:nth-child(7) { transform: rotateY( 240deg ) translateZ(200px);background-color: #ffffcc; }.inner:nth-child(8) { transform: rotateY( 280deg ) translateZ(200px);background-color: #ccff00; }.inner:nth-child(9) { transform: rotateY( 320deg ) translateZ(200px);background-color: #99ff00; }...

    效果圖

    • 這樣一個簡單的靜態(tài)效果就出來了

    加入交互效果

    ....container{.../* 添加過度動畫 */-webkit-transition: -webkit-transform 1s;-moz-transition: -moz-transform 1s;transition: transform 1s;}...<body>...<script type="text/javascript">var container = document.getElementById("container");var deg = 0;container.onclick = function(e){deg = deg + 40;container.style.transform = `rotateY(${deg}deg)`;}</script></body> ...
    • 可以選擇 旋轉(zhuǎn)容器 或則 修改每個方塊的旋轉(zhuǎn)度數(shù)。這里直接旋轉(zhuǎn)的容器。
    • 每次加 40 是因為我們,默認每個方塊都多旋轉(zhuǎn) 40 度。
    • 還需要一個過度效果 添加transition屬性,css自動實現(xiàn)每一幀的動畫。

    效果圖

    總結(jié)

    以上是生活随笔為你收集整理的transform 属性 实现旋转木马效果的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。