国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

CSS3提高: CSS3 3D轉(zhuǎn)換

這篇具有很好參考價值的文章主要介紹了CSS3提高: CSS3 3D轉(zhuǎn)換。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

3D 轉(zhuǎn)換

?我們生活的環(huán)境是3D,照片就是3D物體2D平面呈現(xiàn)的例子。

有什么特點

近大遠(yuǎn)小。

物體后面遮擋不可見

我們在網(wǎng)頁上構(gòu)建3D效果的時候參考這些特點就能產(chǎn)出3D效果。

三維坐標(biāo)系

三維坐標(biāo)系其實就是指立體空間,立體空間是由3個軸共同組成的。

x軸:水平向右??? ??注意: x 右邊是正值,左邊是負(fù)值

y軸:垂直向下? ????注意y 下面是正值,上面是負(fù)值

z軸:垂直屏幕??? ??注意: 往外面是正值,往里面是負(fù)值

CSS3提高: CSS3 3D轉(zhuǎn)換

3D 轉(zhuǎn)換我們主要學(xué)習(xí)工作中最常用的? 3D 位移 和? 3D 旋轉(zhuǎn)

主要知識點

3D位移: translate3d(x,y,z)

3D旋轉(zhuǎn): rotate3d(x,y,z)

透視: perspective

3D呈現(xiàn) transfrom-style

3D移動 translate3d

3D移動2D移動的基礎(chǔ)上多加了一個可以移動的方向,就是z方向。 translform:translateX(100px):僅僅是在x軸上移動

translform:translateY(100px):僅僅是在Y軸上移動

translform:translateZ(100px):僅僅是在Z軸上移動(注意:translateZ一般用px單位)

transform:translate3d(x,y,z):其中 x、yz 分別指要移動的軸的方向的距離?

因為z軸是垂直屏幕,由里指向外面,所以默認(rèn)是看不到元素在z軸的方向上移動

透視 perspective

2D平面產(chǎn)生近大遠(yuǎn)小視覺立體,但是只是效果二維的 ?

如果想要在網(wǎng)頁產(chǎn)生3D效果需要透視(理解成3D物體投影在2D平面內(nèi))。

模擬人類的視覺位置,可認(rèn)為安排一只眼睛去看?

透視我們也稱為視距:視距就是人的眼睛到屏幕的距離

距離視覺點越近的在電腦平面成像越大,越遠(yuǎn)成像越小?

透視的單位是像素

透視寫在被觀察元素的父盒子上面的

d:就是視距,視距就是一個距離人的眼睛到屏幕的距離。

z:就是 z軸,物體距離屏幕的距離,z軸越大(正值) 我們看到的物體就越大。

CSS3提高: CSS3 3D轉(zhuǎn)換

CSS3提高: CSS3 3D轉(zhuǎn)換?translateZ

translform:translateZ(100px):僅僅是在Z軸上移動。

有了透視,就能看到translateZ 引起的變化了???

translateZ:近大遠(yuǎn)小

translateZ:往外是正值

translateZ:往里是負(fù)值?

CSS3提高: CSS3 3D轉(zhuǎn)換

3D旋轉(zhuǎn) rotate3d

3D旋轉(zhuǎn)指可以讓元素平面內(nèi)沿著 x軸,y軸,z軸或者自定義軸進(jìn)行旋轉(zhuǎn)。

語法

transform:rotateX(45deg):沿著x軸正方向旋轉(zhuǎn) 45

CSS3提高: CSS3 3D轉(zhuǎn)換

向里面的就是?rotateX的正軸

transform:rotateY(45deg) :沿著y軸正方向旋轉(zhuǎn) 45deg

CSS3提高: CSS3 3D轉(zhuǎn)換

rotateY正值?

transform:rotateZ(45deg) :沿著Z軸正方向旋轉(zhuǎn) 45deg

transform:rotate3d(x,y,z,deg) 沿著自定義軸旋轉(zhuǎn) deg角度(了解可)

CSS3提高: CSS3 3D轉(zhuǎn)換

對于元素旋轉(zhuǎn)的方向的判斷 我們需要先學(xué)習(xí)一個左手準(zhǔn)則。

左手準(zhǔn)則

左手的手拇指指向 x軸的正方向

其余手指的彎曲方向就是該元素沿著x軸旋轉(zhuǎn)的方向

CSS3提高: CSS3 3D轉(zhuǎn)換

?左手的手拇指指向 y的正方向

其余手指的彎曲方向就是該元素沿著y軸旋轉(zhuǎn)的方向(正值)

CSS3提高: CSS3 3D轉(zhuǎn)換transform:rotate3d(x,y,z,deg) 沿著自定義軸旋轉(zhuǎn) deg為角度(了解即可

xyz是表示旋轉(zhuǎn)軸的矢量,是標(biāo)示你是否希望沿著該軸旋轉(zhuǎn),最后一個標(biāo)示旋轉(zhuǎn)的角度。

transform:rotate3d(1,0,0,45deg) 就是沿著x軸旋轉(zhuǎn) 45deg

transform:rotate3d(1,1,0,45deg) 就是沿著對角線旋轉(zhuǎn) 45deg

3D呈現(xiàn) transfrom-style

控制子元素是否開啟三維立體環(huán)境。

transform-style: flat 子元素不開啟3d立體空間? 默認(rèn)的

transform-style: preserve-3d; 子元素開啟立體空間

代碼寫給父級,但是影響的是子盒子

這個屬性很重要,后面必用

CSS3提高: CSS3 3D轉(zhuǎn)換

CSS3提高: CSS3 3D轉(zhuǎn)換

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body{
            perspective: 300px;
        }
        .box{
            
            position: relative;
            width: 200px;
            height: 200px;
            margin: 100px auto;
            transition: all 2s;
            /* 讓子盒子保持3D立體空間環(huán)境 */
            transform-style: preserve-3d;
        }
        .box:hover{
             transform: rotateY(60deg);
        }
        .box div{
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: pink;
        }
        .box div:last-child{
            
            background-color: purple;
            transform: rotateX(60deg);
        }
    </style>
</head>
<body>
    <div class="box">
        <div></div>
        <div></div>
    </div>
</body>
</html>

案例:兩面翻轉(zhuǎn)的盒子

CSS3提高: CSS3 3D轉(zhuǎn)換

?案例:實現(xiàn)步驟

1. 搭建HTML結(jié)構(gòu)?

box父盒子里面包含前后兩個子盒子

box 是翻轉(zhuǎn)的盒子? front是前面盒子 back是后面盒子

CSS3提高: CSS3 3D轉(zhuǎn)換

?2. CSS樣式

box指定大小,切記要添加3d呈現(xiàn)

back盒子要沿著Y軸翻轉(zhuǎn)180

最后鼠標(biāo)經(jīng)過box 沿著Y旋轉(zhuǎn)180deg

注意:backface-visibility:hidden 不面向屏幕時隱藏

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        body{
            perspective: 400px;
        }
        .box{
            width: 300px;
            height: 300px;
            margin: 100px auto;
            position: relative;
            transition: all .6s;
            /* 讓背面的紫色盒子保留立體哦空間 */
            transform-style: preserve-3d;
        }
        .box:hover{
            transform: rotateY(180deg);
        }
        .front,.back{
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            border-radius: 50%;
            font-size: 30px;
            color: #fff;
            text-align: center;
            line-height: 300px;
        }
        .front{
            transform: translateZ(1px);
            backface-visibility: hidden;
            background-color: pink;
            z-index: 1;
        }
        .back{
            backface-visibility: hidden;
            background: purple;
            /* 像手機(jī)一樣背靠背旋轉(zhuǎn) */
            transform: rotateY(180deg);
        }
    </style>
</head>

<body>
    <div class="box">
        <div class="front">前端小白</div>
        <div class="back">在線尋找?guī)椭?lt;/div>
    </div>
</body>

</html>

CSS3提高: CSS3 3D轉(zhuǎn)換

案例:3D導(dǎo)航欄

實現(xiàn)步驟

1. 搭建HTML結(jié)構(gòu)

<ul>
        <li>
            <div class="box">
                <div class="front">前面</div>
                <div class="bottom">后面</div>
            </div>
        </li>
        
    </ul>

li 做導(dǎo)航欄

.box 是翻轉(zhuǎn)的盒子? front是前面盒子 bottom是底下盒子

2. CSS樣式

li設(shè)置大小,加透視和 3d呈現(xiàn)

front 需要前移 17.5像素

bottom 需要下移 17.5像素 并且要沿著x軸翻轉(zhuǎn)? 負(fù)90

鼠標(biāo)放到box 讓盒子旋轉(zhuǎn)90

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        ul{
            margin: 100px;
        }
        ul li{
            float: left;
            margin-left: 10px;
            width: 120px;
            height: 35px;
            list-style: none;
            line-height: 35px;
            text-align: center;
            color: black;
            /* 一會我們需要給box旋轉(zhuǎn) 也需要透視 干脆給li加 里面的子盒子都有透視效果 */
            perspective: 500px;
        }
        .box{
            transform-style: preserve-3d;
            position: relative;
            width: 100%;
            height: 100%;
            transition: all .4s;
        }
        .box:hover{
            transform: rotateX(90deg);
        }
        .front,.bottom{
            position: absolute;
            left: 0;
            right: 0;
            width: 100%;
            height: 100%;
        }
        .front{
            z-index: 1;
            background-color: pink;
            transform: translateZ(17.5px);
        }
        .bottom{
            background-color: purple;
            /* 這個x軸一定是負(fù)值 */
            /* 我們?nèi)绻幸苿?或者其他樣式 必須先寫我們的移動 */
            transform:translateY(17.5px) rotateX(-90deg) ;
        }
    </style>
</head>

<body>
    <ul>
        <li>
            <div class="box">
                <div class="front">前面</div>
                <div class="bottom">后面</div>
            </div>
        </li>
        <li>
            <div class="box">
                <div class="front">前面</div>
                <div class="bottom">后面</div>
            </div>
        </li>
        <li>
            <div class="box">
                <div class="front">前面</div>
                <div class="bottom">后面</div>
            </div>
        </li>
        <li>
            <div class="box">
                <div class="front">前面</div>
                <div class="bottom">后面</div>
            </div>
        </li>
        <li>
            <div class="box">
                <div class="front">前面</div>
                <div class="bottom">后面</div>
            </div>
        </li>
        
    </ul>
</body>

</html>

CSS3提高: CSS3 3D轉(zhuǎn)換?案例:旋轉(zhuǎn)木馬

實現(xiàn)步驟

<section>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
</section>

里面的6div 分別是 6個狗狗圖片

注意最終旋轉(zhuǎn)是section標(biāo)簽 旋轉(zhuǎn)

2. CSS樣式

body添加 透視效果 perspective: 1000px;

section 添加 大小,一定不要忘記添加? 3d呈現(xiàn)效果控制里面的6div

別忘記子絕父相,section要加相對定位

里面6div 全部絕對定位疊到一起,然后移動不同角度旋轉(zhuǎn)和距離

注意:旋轉(zhuǎn)角度用rotateY?? 距離 肯定用 translateZ來控制

section? 添加動畫animation ,讓它可以自動旋轉(zhuǎn)即可

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        body{
            /* 現(xiàn)在版本不一樣,只能給真正的父元素加才有效 */
            perspective: 1000px;
        }
        section{
            transform-style: preserve-3d;
            /* perspective: 1000px; */
            position: relative;
            width: 300px;
            height: 200px;
            margin: 150px auto;
            /* 添加動畫 */
            animation: rotate 3s linear infinite;
            background: url(media/pig.jpg);
        }
        section:hover{
            /* 鼠標(biāo)放入停止動畫 */
            animation-play-state: paused;
        }
        @keyframes rotate{
            from{
                transform: rotateY(0);
            }
            to{
                transform: rotateY(360deg);
            }
        }
        section div{
            
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: url(media/dog.jpg) no-repeat;
        }
        section div:nth-child(1){
            transform:rotateY(0deg) translateZ(300px);
        }
        section div:nth-child(2){
            /* 先旋轉(zhuǎn)好了 再移動 */
            transform: rotateY(60deg) translateZ(300px);
        }
        section div:nth-child(3){
            /* 先旋轉(zhuǎn)好了 再移動 */
            transform: rotateY(120deg) translateZ(300px);
        }
        section div:nth-child(4){
            /* 先旋轉(zhuǎn)好了 再移動 */
            transform: rotateY(180deg) translateZ(300px);
        }
        section div:nth-child(5){
            /* 先旋轉(zhuǎn)好了 再移動 */
            transform: rotateY(240deg) translateZ(300px);
        }
        section div:nth-child(6){
            /* 先旋轉(zhuǎn)好了 再移動 */
            transform: rotateY(300deg) translateZ(300px);
        }
    </style>
</head>

<body>
    <section>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
    </section>
</body>

</html>

CSS3提高: CSS3 3D轉(zhuǎn)換文章來源地址http://www.zghlxwxcb.cn/news/detail-427841.html

到了這里,關(guān)于CSS3提高: CSS3 3D轉(zhuǎn)換的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • CSS3基礎(chǔ)之3D轉(zhuǎn)換(1)

    CSS3基礎(chǔ)之3D轉(zhuǎn)換(1)

    3. 透視perspective 3.1`translateZ` 4. 3D旋轉(zhuǎn)`rotate3d` 5. 3D呈現(xiàn)`transform-style` 1. 三維坐標(biāo)系 ======================================================================== 三維坐標(biāo)系 其實就是指立體空間,立體空間是由3個軸共同組成的 x軸: 水平向右 注意: x 右邊是正值,左邊是負(fù)值 y軸: 垂直向下 注意:

    2024年04月23日
    瀏覽(21)
  • 無涯教程-CSS3 - 3D轉(zhuǎn)換屬性

    使用3d變換,無涯教程可以將元素移動到x軸,y軸和z軸。下面的示例清楚地指定了元素將如何旋轉(zhuǎn)。 以下方法用于調(diào)用3D變換- Sr.No. Value Remark 1 matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) 用于通過使用矩陣的16個值來變換元素 2 translate3d(x,y,z) 用于通過使用x軸,

    2024年02月20日
    瀏覽(25)
  • 【CSS3】CSS3 3D 轉(zhuǎn)換 ② ( 3D 透視視圖 | “ 透視 “ 概念簡介 | 視距與成像關(guān)系 | CSS3 中 “ 透視 “ 屬性設(shè)置 | “ 透視 “ 語法設(shè)置 | 代碼示例 )

    【CSS3】CSS3 3D 轉(zhuǎn)換 ② ( 3D 透視視圖 | “ 透視 “ 概念簡介 | 視距與成像關(guān)系 | CSS3 中 “ 透視 “ 屬性設(shè)置 | “ 透視 “ 語法設(shè)置 | 代碼示例 )

    在本博客中引入 3D 效果 透視視圖 Perspective 概念 ; 3D 視圖中 產(chǎn)生 3D 效果 , 最終要的是有透視效果 , 通俗的講 \\\" 透視 \\\" 就是實現(xiàn) \\\" 近大遠(yuǎn)小 \\\" 的效果 ; 透視 就是 將 3D 空間中的物體 投影顯示到 2D 平面中 ; 透視視圖 ( Perspective View ) : 近大遠(yuǎn)小 , 符合正常人眼觀察 3D 世界的規(guī)律

    2024年02月13日
    瀏覽(29)
  • css3 3D 轉(zhuǎn)換 技巧詳細(xì)解析與代碼實例

    CSS3 3D轉(zhuǎn)換是CSS3中的一項新特性,通過它我們可以比較容易地實現(xiàn)3D效果。在這里,我將向大家介紹CSS3 3D轉(zhuǎn)換的一些基本概念、使用方法和常見技巧。 1. 基本概念 在使用CSS3 3D轉(zhuǎn)換時,需要了解一些基礎(chǔ)概念: 三維坐標(biāo)系:x軸、y軸、z軸 旋轉(zhuǎn)角度:在3D轉(zhuǎn)換中,物體可以繞著

    2024年02月08日
    瀏覽(27)
  • CSS3基礎(chǔ)之3D轉(zhuǎn)換(1),前端開發(fā)架構(gòu)

    CSS3基礎(chǔ)之3D轉(zhuǎn)換(1),前端開發(fā)架構(gòu)

    3. 透視perspective 3.1`translateZ` 4. 3D旋轉(zhuǎn)`rotate3d` 5. 3D呈現(xiàn)`transform-style` 1. 三維坐標(biāo)系 ======================================================================== 三維坐標(biāo)系 其實就是指立體空間,立體空間是由3個軸共同組成的 x軸: 水平向右 注意: x 右邊是正值,左邊是負(fù)值 y軸: 垂直向下 注意:

    2024年04月13日
    瀏覽(40)
  • 【W(wǎng)eb2D/3D】CSS3的2D/3D轉(zhuǎn)換、過渡、動畫(第一篇)

    1. 前言 ? ? ? ? 本篇開始介紹Web2D和3D相關(guān)基礎(chǔ)知識,會從CSS3的2D/3D轉(zhuǎn)換、過渡、動畫,講到Canvas 2D圖形繪制,再到SVG,最后到WebGL。 ? ? ? ??坐標(biāo)系:左上點是坐標(biāo)原點(0,0),x軸正方向向右,y軸正方向向下,z軸正方向向外(垂直屏幕向外)。 2. 2D轉(zhuǎn)換 ? ? ? ? CSS3的2D/3D旋

    2024年02月04日
    瀏覽(26)
  • 【CSS3】CSS3 3D 轉(zhuǎn)換 ④ ( 3D 旋轉(zhuǎn) rotate3d | rotate3d 語法 | rotate3d 自定義軸旋轉(zhuǎn) | 元素旋轉(zhuǎn)方向 - 左手準(zhǔn)則 | 代碼示例 )

    【CSS3】CSS3 3D 轉(zhuǎn)換 ④ ( 3D 旋轉(zhuǎn) rotate3d | rotate3d 語法 | rotate3d 自定義軸旋轉(zhuǎn) | 元素旋轉(zhuǎn)方向 - 左手準(zhǔn)則 | 代碼示例 )

    3D 旋轉(zhuǎn) 指的是 在 三維空間坐標(biāo)系 中 , 繞 X 軸 , Y 軸 , Z 軸 進(jìn)行旋轉(zhuǎn) , 同時還可以繞 自定義軸 進(jìn)行旋轉(zhuǎn) ; 2D 旋轉(zhuǎn)只能 以 某個點為中心進(jìn)行旋轉(zhuǎn) , 3D 旋轉(zhuǎn)可以繞某個軸進(jìn)行旋轉(zhuǎn) ; CSS3 中 3D 旋轉(zhuǎn) 語法 : 繞 X 軸旋轉(zhuǎn) : 沿著 X 軸 正方向 旋轉(zhuǎn) 45 度 ; 繞 Y 軸旋轉(zhuǎn) : 沿著 Y 軸 正方向

    2024年02月11日
    瀏覽(25)
  • CSS -- CSS3中3D轉(zhuǎn)換相關(guān)屬性講解(translate3d,rotate3d,perspective,transform-style)

    CSS -- CSS3中3D轉(zhuǎn)換相關(guān)屬性講解(translate3d,rotate3d,perspective,transform-style)

    我們生活的環(huán)境是3D的,照片就是3D物體在2D平面呈現(xiàn)的例子。 3D特點: 近大遠(yuǎn)小。 物體后面遮擋不可見 當(dāng)我們在網(wǎng)頁上構(gòu)建3D效果的時候參考這些特點就能產(chǎn)出3D效果。 三維坐標(biāo)系其實就是指立體空間,立體空間是由3個軸共同組成的。 x軸:水平向右 注意:X右邊是正值,左

    2024年02月05日
    瀏覽(89)
  • CSS3過渡、過渡練習(xí)——進(jìn)度條案例、2D轉(zhuǎn)換(translate、rotate、scale、轉(zhuǎn)換中心點transform-origin)、動畫、3D、案例(兩面翻轉(zhuǎn)的盒子、3D導(dǎo)航欄、旋轉(zhuǎn)木馬案例)

    CSS3過渡、過渡練習(xí)——進(jìn)度條案例、2D轉(zhuǎn)換(translate、rotate、scale、轉(zhuǎn)換中心點transform-origin)、動畫、3D、案例(兩面翻轉(zhuǎn)的盒子、3D導(dǎo)航欄、旋轉(zhuǎn)木馬案例)

    目錄 一、CSS3過渡(transition)(重點) 二、CSS3過渡練習(xí)——進(jìn)度條案例 三、CSS3 2D轉(zhuǎn)換(translate、rotate、scale、轉(zhuǎn)換中心點transform-origin) 四、CSS3 動畫 五、CSS3動畫常見屬性 五、熱點圖案例(動畫) 六、速度曲線之steps步長(案例——奔跑的熊大) 七、CSS3 3D轉(zhuǎn)換(3D 位移:t

    2024年02月03日
    瀏覽(100)
  • HTML5CSS3提高

    HTML5 的新增特性主要是針對于以前的不足,增加了一些新的標(biāo)簽、新的表單和新的表單屬性等。 這些新特性都有兼容性問題,基本是 IE9+ 以上版本的瀏覽器 才支持,如果不考慮兼容性問題,可以大量使用這些新特性。 以前布局,我們基本用 div 來做。div 對于搜索引擎來說,

    2024年02月14日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包