用純CSS實現簡易翻書效果

2021-10-03 14:54:59 字數 3005 閱讀 1381

在對css3語言進行了更深入的學習後,我對於css3構建3d模型有了一些簡單的了解。這是我在逆戰班學習的第五個星期,我希望將自己所學知識總結運用並分享給和我一樣的前端小白,在此做一些簡單的介紹。

由以上示意圖可以看出,翻書模型由封面、內容和封底三部分組成,這三部分皆為帶陰影和圓角的矩形,且封面和封底採用了相同的漸變色,長寬較內容頁稍大。

我們不妨將採用無序列表ul包含多個子元素li來實現這個效果,html結構如下:

>

class

="page"

>

class

="cover-page"

>

li>

class

="inside-page"

>

li>

class

="inside-page"

>

li>

class

="inside-page"

>

li>

class

="inside-page"

>

li>

class

="inside-page"

>

li>

class

="end-page"

>

li>

ul>

body

>

分別給代表封面和封底的li新增了類名稱cover-page和end-page,並且為了實現多頁書頁的效果,給代表內容頁的5個li新增了類名稱inside-page。隨後,為他們新增了css樣式:

/*給ul新增長寬屬性*/

.page

/*給所有li絕對定位,並新增圓角和陰影*/

.page li

/*給封面頁新增漸變屬性和大小*/

.cover-page

/*給封底頁新增漸變屬性和大小*/

.end-page

/*給內容頁添大小定位以及底色邊框*/

.inside-page

效果如下:

隨後,將各個頁面按不同角度傾斜,使模型產生立體感。需要提醒的是,旋轉軸一定要給左邊框,否則所有頁面將中心翻轉;新增旋轉後一定要給父元素(ul)新增視距和3d旋轉型別,css**如下:

.page

.page li

.page li:nth-of-type(1)

.page li:nth-of-type(2)

.page li:nth-of-type(3)

.page li:nth-of-type(4)

.page li:nth-of-type(5)

.page li:nth-of-type(6)

效果如下:

在滑鼠移入的時候,整個模型中的頁面會依次旋轉展開,而因旋轉的角度和時間不同,則會給人以書本翻閱的效果。

為了頁面內容更加逼真,此處採用了簡易的處理:為頁面新增橫線,模擬一般筆記本的內頁,其中橫線採用div的下邊線來實現,html**如下:

class

="inside-page"

>

>

div>

>

div>

>

div>

>

div>

>

div>

>

div>

>

div>

>

div>

>

div>

>

div>

>

div>

>

div>

>

div>

>

div>

>

div>

li>

css**如下:

/*橫線樣式*/

.inside-page div

最後,再給各個頁面新增hover偽類選擇器以及transition屬性,簡易翻書效果就完成了。

css**:

/*滑鼠離開頁面回翻的旋轉時間*/

.page li:nth-of-type(1)

.page li:nth-of-type(2)

.page li:nth-of-type(3)

.page li:nth-of-type(4)

.page li:nth-of-type(5)

.page li:nth-of-type(6)

/*滑鼠懸停時的旋轉角度和旋轉時間*/

.page:hover li:nth-of-type(1)

.page:hover li:nth-of-type(2)

.page:hover li:nth-of-type(3)

.page:hover li:nth-of-type(4)

.page:hover li:nth-of-type(5)

.page:hover li:nth-of-type(6)

至此,簡易翻書效果就實現了,因筆者寫這篇部落格時的實力有限,還有諸多可以簡化的地方望讀者友善地批評指出。希望這篇部落格對讀到此處的你有幫助,友好的建議我也將不勝感激。

CSS3 實現翻書效果

body ulul li一般3d層給實現3d效果的父盒子,視距給最大的盒子body。在給子元素設定旋轉角度過程中,使用偽類選擇器可以減少記憶體的占用,這裡使用到 nth child 偽類。主要css 如下 ul hover li nth child 1 ul hover li nth child 2...

Unity Shader實現翻書效果

這裡就隨便用的一張紋理了,我們還是稱為 翻木板 吧,哈哈。實現過程 其實這個效果實現起來還是挺簡單的,大概思路其實就是讓所有頂點都繞z軸旋轉,並且通過正余弦使之帶有一點弧度。下面開始讓我們一步一步的實現該效果。首先開啟unity新建乙個工程,場景,並且建立乙個名為openbookeffect的sha...

使用CSS3實現翻書效果(二)

原來一直使用qq直接登入的部落格,今天繫結了一下郵箱,原來的部落格全沒了,只好把原來備份的博文重新發了一下,還好只有兩篇 昨天把css3實現翻書樣式的效果實現了大半,今天將其主體的樣式全部實現了,下面將進行說明 我們仔細觀察書本的樣式發現書本底下是有陰影的,而且陰影可以隨著翻書的動作來移動,書皮的左...