搜尋
首頁web前端css教學cs如何實現翻轉效果

cs如何實現翻轉效果

Apr 13, 2021 am 10:40 AM
css3動畫前端

css實現翻轉效果的方法:1、將外層元素設定perspective;2、將第二包裹層翻轉180度,同時設定過渡速度;3、設定「backface-visibility」;4、設定「z-index」屬性;5、讓「back」最開始就翻轉180度。

cs如何實現翻轉效果

CSS3實現翻轉(Flip)效果

今天,我們用比較簡潔的CSS3來實現翻轉效果。

動畫效果

cs如何實現翻轉效果

cs如何實現翻轉效果

#效果分析

當滑鼠滑過包含區塊時,元素整體翻轉180度,以實現“正”“反”面的切換。

HTML分析

分析:.container.flip為了實現動畫效果做準備。 .front,.back各包一張圖片。
實現此效果的HTML如下:

<p>
    </p><p>
        </p><p>
            <img  src="/static/imghwm/default1.png" data-src="images/pic00.jpg" class="lazy" alt="cs如何實現翻轉效果" >
        </p>
        <p>
            <img  src="/static/imghwm/default1.png" data-src="images/pic01.jpg" class="lazy" alt="cs如何實現翻轉效果" >
        </p>
    

CSS分析

1. 元素佈局

為了實現上述效果,先進行元素佈局。給.front,.back相對.flip進行絕對定位,讓他們在相同位置重疊。
佈局部分程式碼如下:

    .container,.front,.back{width:380px;height:270px;}
    .flip{position:relative;}
    .front,.back{position:absolute;top: 0px;left: 0px;}

設定之後我們發現.back的圖片在.front的上面,因此給.front設定.fornt{z-index:2;}

注意:不要為了防止元素溢出設定overflow屬性,這將導致3D效果無法實現。

w3 spec中描述:

The following CSS property values require the user agent to create a flattened representation of the descendant elements before they can be applied, and therefore force the used value of transform-style to flat:

  • overflow: any value other than visible.

  • ##opacity: any value less than 1.

  • filter: any value other than none.

  • #clip: any value other than auto.

#2. 動畫效果的實現

(1) 為了實現動畫效果首先給祖先元素

.container,.flip設定以下屬性,以觸發3d效果和設定動畫:

.container{perspective:1000;transform-style:preserve-3d;}
.flip{transition:0.6s;transform-style:preserve-3d;}
(2)接著,為了讓圖畫翻轉時不露出背面,給

.front,.back設定backface-visibility 屬性:
.front,.back{backface-visibility:hidden;}

(3)為了讓滑鼠滑過包含區塊時,包含區塊翻轉180度,以實現“正”“反”面的切換。給背面的元素設定

transform:rotateY(-180deg),這時我們將無法看到.back

(4)最後,當使用者的滑鼠滑過

.container包含區塊時,.flip翻轉180度,這樣,.front翻轉180度,由於背面是hidden,無法看見;而.back翻轉180度後,回到0度,以正面示人,這樣我們就能看到背面了。

程式碼如下:

    .container{perspective:1000;transform-style:preserve-3d;}
    .container,.front,.back{width:380px;height:270px;}
    .flip{position:relative;transition:0.6s;transform-style:preserve-3d;}
    .front,.back{position:absolute;top: 0px;left: 0px;backface-visibility:hidden;}
    .front{z-index:2;}
    .back{transform:rotateY(-180deg);}
    .container:hover .flip{transform:rotateY(180deg);}
垂直翻轉效果實現

垂直效果與水平翻轉異曲同工。但如果你只是把rotateY換成rotateX,那麼你會發現圖片是以頂部的那條線翻轉的。

請注意:在上面的CSS程式碼中,我並未給
.flip設定寬高,所以當給.flip應用transform:rotateY(180deg) 時,依照預設的transform-origin值,是以元素的中心點為基本點翻轉的。這裡.flip的高度是0,所以當然是以頂部的那條線為基礎翻轉。所以解決的辦法有二:

  1. .flip設定和.front,.back相同的寬高。

  2. .flip設定transform-origin:100% 135px/*高度的一半*/屬性。 OK,這樣你就會發現垂直翻轉是你想要的效果了!

總結

1. 想法

(1)最外層元素設定

perspective以實現3D效果。 (2)當滑鼠滑過最外層元素時,第二包裹層翻轉180度,同時設定過渡速度。
(3)兩個翻轉塊絕對定位,以致實現相同位置的疊加。同時設定
backface-visibility避免在實現動畫效果時露出背面。 (4)給
.front設定z-index屬性使它在寫程式碼和展示時都在前面。 (5)讓
.back最開始就翻轉180度,以背面示人。

2. 遇到的問題:

(1)為了讓兩個尺寸不一的圖片在包裹區塊中大小一致,使用了overflow屬性,無法實現3d效果。解決方法:給img設定width:100%;height:100%;
(2)沒有意識到.flip的高度為0,所以在垂直翻轉時標準點錯誤導致效果不一樣。
(3)多寫才能發現多的錯誤,才知道怎麼找錯誤,怎麼解決錯誤。

【推薦學習:css影片教學

以上是cs如何實現翻轉效果的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
GIT的圖形用戶界面GIT的圖形用戶界面Apr 19, 2025 am 09:46 AM

如今,Lemme匯集了Guis的主要參與者。

滾動懶惰的提示滾動懶惰的提示Apr 19, 2025 am 09:44 AM

您可能已經聽到(甚至發出電話)說:“我們可以使用懶惰的加載!”在尋找一種纖細的網頁時,請使用。

CSS 2019調查的三個預測CSS 2019調查的三個預測Apr 19, 2025 am 09:43 AM

運行像CSS狀態這樣的開發人員調查是一個多階段過程。首先,您需要收集數據。然後,將其處理成可用的形狀。

終於...終於有諾言的帖子終於...終於有諾言的帖子Apr 19, 2025 am 09:39 AM

“什麼時候終於在JavaScript承諾中開火?”這是我在最近的一個研討會中問的一個問題,我想我會寫一些帖子以清除任何

微觀前端微觀前端Apr 19, 2025 am 09:37 AM

不久前的一個隨機日子,我開始開玩笑說“微觀前沿”這是我第一次學習吐司的方式。我不理解

在飛輪上的CSS漫畫在飛輪上的CSS漫畫Apr 19, 2025 am 09:36 AM

我首先聽說過通過其產品本地產品的飛輪,這是一個用於WordPress網站上的本機應用程序。如果您詢問人們使用什麼

PSA:鏈接到行為守則模板與具有行為守則的情況不同PSA:鏈接到行為守則模板與具有行為守則的情況不同Apr 19, 2025 am 09:35 AM

您是否知道我們有一個網站列出了與前端網頁設計和開發有關的所有即將舉行的會議?我們願意!如果您想去一個,請檢查

第十二個第十二個Apr 19, 2025 am 09:30 AM

CSS-Tricks已有12歲!牢牢地進入青春期早期的階段,我說的是我們每年所做的,讓我們對過去一年的反思。我最好有

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器