抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

封面来源:和洋折衷ライブラリー | 藤ちょこ(藤原) #pixiv https://www.pixiv.net/artworks/61930743

自从建立博客以来,在下一直喜欢拜访其他大佬的博客,发现很多博客都有书单页面,令在下也很是动心。基于在下贫弱不堪的前端水平,在下开始寻找能够给 WordPress 博客添加一个书单页面的一条龙教程或插件,可惜既没有找到满意的教程,也没有能用的插件,遂决定自己动手制作。

说到书单页面,给在下留下非常深刻印象的还属 蝉时雨 大佬的作品,其书籍以立体的形式展示而且还带有旋转效果。于是在下决定也给自己来一个这样的书单,然而对于一个发量危急的法学生来说,想实现这个效果可并没有那么简单。好在有其他大佬已经在 CSDN 分享了立体书籍旋转效果的代码,只要拿来作适当修改便是。

模板制作

接下来就开始书单模板的制作了,首先在 Wordpress 主题根目录下把 page.php 复制一份,重命名为 page-book.php ,并把开头的注释改为如下所示。

1
2
3
/**
* Template Name: 书单模版
*/

这样一来,就能在后台的新建页面界面的模板选项中看到书单模板了。 继续在 page-book.php 的注释后添加如下样式代码。 当然可以依照个人需要进行微调。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<style>
.group:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}

* html .group {
height: 1%;
}

*:first-child+html .group {
min-height: 1px;
}

body {
line-height: 1.9em;
background-color: #0b3065;
background-size: cover;
font-family: arial,
sans-serif;
}

.container {
max-width: 60em;
margin: 0 auto;
padding: 0 2em;
}

.text.container {
max-width: 38em;
text-align: center;
margin: 50px auto 100px;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.75);
}

a {
color: #da9803;
text-decoration: none;
}

a:hover {
text-decoration: underline;
}

h.main-title {
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
color: #fff;
font-weight: normal;
margin: 1.25em;
text-align: center;
font-size: 2.75em;
letter-spacing: -1px;
}

p {
margin-bottom: 1em;
font-size: 1.25em;
}

hr {
margin: 2em 0;
}

.book-container {
width: 100%;
margin: 0 auto;
display: block;
-webkit-perspective: 1000px;
-moz-perspective: 1000px;
perspective: 1000px;
}

.book {
z-index: 5;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
-webkit-transition: 0.75s;
-moz-transition: 0.75s;
transition: 0.75s;
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
transform-style: preserve-3d;
-webkit-transform-origin: 33% 0;
-moz-transform-origin: 33% 0;
transform-origin: 33% 0;
}

.book:after {
content: "";
position: absolute;
top: 0;
bottom: 0;
left: 3px;
width: 7px;
background: url(翻页转角处的图片) repeat-y;
z-index: 20;
-webkit-transform: translateZ(1px);
}

.book:hover {
-webkit-transform: translateX(-10px) translateZ(35px) translateX(35px) rotateY(45deg);
-moz-transform: translateX(-10px) translateZ(35px) translateX(35px) rotateY(45deg);
transform: translateX(-10px) translateZ(35px) translateX(35px) rotateY(45deg);
}

.book-cover {
position: relative;
z-index: 10;
}

.book-cover img {
vertical-align: bottom;
max-width: 100%;
height: auto;
}

.book-spine {
position: absolute;
color: #fff;
bottom: 0;
top: 0;
width: 10%;
z-index: 5;
overflow: hidden;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
background: url(书的侧面图片) -64px 0 no-repeat;
background-size: auto 100%;
-webkit-transform: rotateY(-90deg) translateX(-100%);
-moz-transform: rotateY(-90deg) translateX(-100%);
transform: rotateY(-90deg) translateX(-100%);
-webkit-transform-origin: 0 0;
-moz-transform-origin: 0 0;
transform-origin: 0 0;
}

.book-spine h {
display: block;
width: 100%;
text-align: left;
color: #fff;
position: absolute;
top: 0;
left: 19%;
text-indent: 43px;
text-transform: uppercase;
font-family: "league_gothic_condensedRg", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 2em;
opacity: 0.75;
font-weight: normal;
-webkit-font-smoothing: antialiased;
-webkit-transform: rotateZ(90deg);
-moz-transform: rotateZ(90deg);
transform: rotateZ(90deg);
-webkit-transform-origin: 0 0;
-moz-transform-origin: 0 0;
transform-origin: 0 0;
}

.book-spine:before {
display: block;
content: "";
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.3);
}
</style>

模板使用

一切就绪之后就可以使用模板了,只要在模板当中输入以下 HTML 代码,就能使书籍的封面图获得立体旋转效果了。

1
2
3
4
5
6
7
8
9
10
11
12
<div class="container group" valign="top">
<a class="book-container">
<div class="book">
<div class="book-cover">
<img src="书籍封面图" alt="" />
</div>
<div class="book-spine">
<h>书脊文字</h>
</div>
</div>
</a>
</div>

此时可以结合使用 <div> 块或是表格来进行排版,添加更多的书籍信息和其他元素,最终打造出书单页面。

虽然这个模板做得十分笨拙,立体旋转效果也不如蝉时雨大佬的书单精致,且存在很多可以优化的地方(例如可以把那一大块 HTML 代码简化成短代码等等),但要比简单粗暴直接放表格陈列好多了。况且也是自己捣鼓的东西,对于在下这个伪程序宅,还是有不小的成就感。

评论