整个侧边栏使用一个div.paper-back作为包裹元素,里面是一个<nav>元素包裹一组菜单项<a>元素。其中div.close是关闭按钮。
1 2 3 4 5 6 7 8 9 | < div id = "paper-back" > < nav > < div class = "close" ></ div > < a href = "#" >Home</ a > < a href = "#" >About Us</ a > < a href = "#" >Our Work</ a > < a href = "#" >Contact</ a > </ nav > </ div > |
页面的内容部分使用嵌套<div>的HTML结构。div.hamburger是汉堡包图标。每一个页面内容块使用一个<section>元素来制作。
1 2 3 4 5 6 7 8 9 10 | < div id = "paper-window" > < div id = "paper-front" > < div class = "hamburger" >< span ></ span ></ div > < div id = "container" > < section >...</ section > < section >...</ section > ... </ div > </ div > </ div > |
侧边栏导航菜单的样式只是简单的将它固定定位定位,它的实际大小为整个视口的大小。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #paper-back { width : 100% ; height : 100 vh; background-color : #243040 ; position : fixed ; top : 0 ; left : 0 ; font-size : 33px ; } #paper-back nav { padding : 120px 34px ; } #paper-back nav a { display : block ; margin-bottom : 25px ; text-decoration : none ; color : rgba( 255 , 255 , 255 , 0.7 ); } |
内容部分的包裹元素div#paper-window的大小也是整个视口的大小,超出水平方向的部分被隐藏,并且定位方式为相对定位。
1 2 3 4 5 6 7 8 | #paper-window { height : 100 vh; width : 100 vw; position : relative ; overflow-x: hidden ; overflow-y: scroll ; z-index : 2 ; } |
实际用于制作页面倾斜效果的元素是div#paper-front。它设置为相对定位,转换操作的中心原点被设置在center 70%位置。
1 2 3 4 5 6 7 8 9 10 11 12 | #paper-front { pointer-events: auto ; position : relative ; z-index : 3 ; background-color : white ; box-shadow: 0 0 20px rgba( 0 , 0 , 0 , 0.7 ); -webkit-transform-origin: center 70% ; -ms-transform-origin: center 70% ; transform-origin: center 70% ; -webkit-transition: all 0.3 s ease; transition: all 0.3 s ease; } |
当页面处于倾斜状态时,div#paper-front元素被动态添加class tilt,这种状态下,它绕设定好的原点旋转10度,超出的部分会被隐藏。
1 2 3 4 5 6 7 8 | #paper-window.tilt { overflow : hidden ; pointer-events: none ; } #paper-window.tilt #paper-front { -webkit-transform: rotate( 10 deg) translateZ( 0 ); transform: rotate( 10 deg) translateZ( 0 ); } |
特别申明:
本站所有资源都是由网友投稿发布,或转载各大下载站,请自行检测软件的完整性!
本站所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!
如有侵权请联系我们删除下架,联系方式:lei1294551502@163.com