家好,今天跟大家分享的是CSS3动态日记翻页效果的实现方法,老规矩,先看效果
翻开效果
闭合效果
接下来讲解具体操作步骤,相信观看过小编前几期教程的同学应该对CSS3的“rotate”属性都不陌生,在轮播图那期我们已经初步体验来它的效果,这一期主要用到的还是这个旋转属性。
最外层的div(.book)主要用来调控日记本在页面的位置和添加一些立体效果;第二层div(.page-box-n)用来设置翻页效果;最里面的div(.page-n)用来设置具体每一页的样式。有一点要注意的是在HTML中页面的顺序是从后向前排列,这样后面用绝对定位将他们浮在一起时才会按正常顺序前后排列(可参考absolute原理)。
HTML结构
日记延左侧翻页—原理:如果我们直接让page页延Y轴旋转它会延自身Y轴居中旋转,因此我们可以把page页设置为page-box的一半定位在右侧再让page-box延Y轴旋转就可以实现page页延左边框旋转了。
翻页原理
基本样式:给body添加一个背景颜色,用perspective添加一个观察点(目的是为了看上去更立体)。
添加立体效果:“transform-style: perspective-3d”让元素在3D空间内呈现,延X轴旋转30°调整可视面,这两步也是为了让元素看上去更立体。
page-box设置:给所有的page-box设置相同的宽高,position设为absolute使其重叠在一起,并调整到相应的位置。
page页通用设置:设置page页的宽高,与父元素page-box同高,宽度为page-box的一半,left:50%定位在page-box的右侧,添加一像素实线边框,颜色最好与封面主题色调一致(亲测效果好些)。
封面样式:给封面添加一个背景图片(自选),大小与page页一致。
内容页样式:根据实际情况给内容页添加一定的样式(字体、颜色、边距等),根据个人喜好随便搞。
添加翻页效果:这里所有页面的动画效果都一样,只需设置每个page-box都延Y轴旋转即可,只是旋转的角度和效果持续及延迟的时间稍有不同,自己在做的时候根据所需效果调节即可,下面是相应的动画设置和动画引入代码。
封面
第二页
第三页
大功告成,现在可以刷新你的页面看看效果了!
感兴趣的同学现在就试试吧!如果发现问题请@窗外楼。
在CSS3中新增了很多的新特性,其中使用频率比较高的应该是动画效果了,它可以帮助我们实现以前使用Javascript才能实现的效果,极大的提高网页的性能。今天这篇文章我们就来一起看一个使用CSS3新特性完成的翻书效果吧。
本文的源码已经放在了Github上,感兴趣的可以clone到本地试试,地址如下。
https://github.com/zhouxiongking/article-pages/blob/master/articles/rollPage/rollPage.html
CSS3
首先我们来看看实际的运行效果,动态图如下所示。
效果图
在看到上述的效果图后,我们来进行分析,这个过程是如何实现的。
这个页面我们通过一个ul包含三个li来实现,每个li都给一个固定的宽度和高度。
第一个li在页面上静止不动。
第二个li添加动画效果,使其直接绕Y轴翻转360度。
第三个li添加动画效果,但是翻转周期是在25%的时候开始,因此会有一种翻书的速度差异感。
上面的步骤分析完后就剩下最重要的一个过程,那就是给外层的ul元素添加perspective属性,这个属性是决定这个动画能不能实现的主要的因素。
perspective是CSS3中新增的属性,表示的是设置某个元素被查看的视角,用于实现3D效果。
需要注意的是当某个元素设置了perspective属性时,其子元素会获得透视效果,而不是这个元素本身。
我们来看一个简单的例子,有一个section父元素和一个div子元素,让div元素旋转45度,html元素如下。
html元素
其对应的CSS属性如下。
CSS属性
在section元素上,如果不使用perspective的情况下,得到效果如下图所示。
效果图1
如果给section元素加上perspective属性,并设定600px时,得到的效果图如下。
效果图
通过以上两幅图的对比我们发现,两幅图在Y轴的视角上发生了变化。
接下来,我们来具体看看这个翻书效果的代码实现。
通过之前的分析,我们知道这个效果是通过ul与li来实现的,html部分代码如下。
HTML代码
首先看看ul与li的基本css属性,记住这里需要给ul元素添加perspective属性。
基本CSS属性
然后是给第二个li添加动画。
第二个li的css属性
最后是给第三个li添加动画。
第三个li的css属性
注意到上面的代码中有个25%和100%的设置,这个和第二个li不同,所以会有一种翻转书页快慢的差异感。
如果按照上述代码来做,即可实现文章开始的翻书动画效果。
今天这篇文章主要是通过CSS3新增的属性实现了一个翻书动画效果,大家学会了吗?
在CSS3中新增了很多的新特性,其中使用频率比较高的应该是动画效果了,它可以帮助我们实现以前使用Javascript才能实现的效果,极大的提高网页的性能。今天这篇文章我们就来一起看一个使用CSS3新特性完成的翻书效果吧。
本文的源码已经放在了Github上,感兴趣的可以clone到本地试试,地址如下。
https://github.com/zhouxiongking/article-pages/blob/master/articles/rollPage/rollPage.html
CSS3
首先我们来看看实际的运行效果,动态图如下所示。
效果图
在看到上述的效果图后,我们来进行分析,这个过程是如何实现的。
这个页面我们通过一个ul包含三个li来实现,每个li都给一个固定的宽度和高度。
第一个li在页面上静止不动。
第二个li添加动画效果,使其直接绕Y轴翻转360度。
第三个li添加动画效果,但是翻转周期是在25%的时候开始,因此会有一种翻书的速度差异感。
上面的步骤分析完后就剩下最重要的一个过程,那就是给外层的ul元素添加perspective属性,这个属性是决定这个动画能不能实现的主要的因素。
perspective是CSS3中新增的属性,表示的是设置某个元素被查看的视角,用于实现3D效果。
需要注意的是当某个元素设置了perspective属性时,其子元素会获得透视效果,而不是这个元素本身。
我们来看一个简单的例子,有一个section父元素和一个div子元素,让div元素旋转45度,html元素如下。
html元素
其对应的CSS属性如下。
CSS属性
在section元素上,如果不使用perspective的情况下,得到效果如下图所示。
效果图1
如果给section元素加上perspective属性,并设定600px时,得到的效果图如下。
效果图
通过以上两幅图的对比我们发现,两幅图在Y轴的视角上发生了变化。
接下来,我们来具体看看这个翻书效果的代码实现。
通过之前的分析,我们知道这个效果是通过ul与li来实现的,html部分代码如下。
HTML代码
首先看看ul与li的基本css属性,记住这里需要给ul元素添加perspective属性。
基本CSS属性
然后是给第二个li添加动画。
第二个li的css属性
最后是给第三个li添加动画。
第三个li的css属性
注意到上面的代码中有个25%和100%的设置,这个和第二个li不同,所以会有一种翻转书页快慢的差异感。
如果按照上述代码来做,即可实现文章开始的翻书动画效果。
今天这篇文章主要是通过CSS3新增的属性实现了一个翻书动画效果,大家学会了吗?
*请认真填写需求信息,我们会在24小时内与您取得联系。