这是一款使用纯CSS3制作的效果非常炫酷的全屏百叶窗效果幻灯片特效。该幻灯片特效使用全屏背景图片制作,在幻灯片切换的时候图片会以百叶窗的方式隐藏和展现,效果非常不错。
制作方法
HTML结构
该幻灯片特效的HTML结构采用嵌套<div>
的HTML结构,前后导航按钮使用<input>
和<label>
来制作。
< div class = "slider" > < input name = "control" id = "page1" type = "radio" checked/> < input name = "control" id = "page2" type = "radio" /> < input name = "control" id = "page3" type = "radio" /> < input name = "control" id = "page4" type = "radio" /> < div class = "slider--el slider--el-1 anim-4parts" > < div class = "slider--el-bg" > < div class = "part top left" ></ div > < div class = "part top right" ></ div > < div class = "part bot left" ></ div > < div class = "part bot right" ></ div > </ div > < div class = "slider--el-content" > < h2 class = "slider--el-heading" >First slide</ h2 > </ div > </ div > ...... < div class = "slider--control left" > < label class = "page1-left" for = "page1" ></ label > < label class = "page2-left" for = "page2" ></ label > < label class = "page3-left" for = "page3" ></ label > < label class = "page4-left" for = "page4" ></ label > </ div > < div class = "slider--control right" > < label class = "page1-right" for = "page1" ></ label > < label class = "page2-right" for = "page2" ></ label > < label class = "page3-right" for = "page3" ></ label > < label class = "page4-right" for = "page4" ></ label > </ div > </ div > |
百叶窗效果是通过在每个幻灯片中添加空的<div>
,每个空<div>
控制背景图片的一部分,然后使用CSS来制作动画效果。
CSS样式
整个幻灯片采用绝对定位,宽度和高度都为100%。
.slider--el { z-index : 1 ; position : absolute ; top : 0 ; left : 0 ; width : 100% ; height : 100% ; -webkit- transition : -webkit-transform 2.8 s, z-index 0.1 s; transition : transform 2.8 s, z-index 0.1 s; overflow : hidden ; } |
第一幅幻灯片中共分为4个图块,每个图块宽度和高度都设置为50.2%。并通过will-change
属性来优化动画性能。
.slider--el.anim -4 parts .part { position : absolute ; width : 50.2% ; height : 50.2% ; overflow : hidden ; will-change: transform; } |
接下来使用:before
伪元素来为每一个图块添加背景图片,通过top
和left
来定位背景图片。使4个图块分别显示整幅图片的不同部分。
.slider--el.anim -4 parts .part:before { content : "" ; display : block ; position : absolute ; background-size : cover ; width : 200% ; height : 200% ; background-image : url ( "aT2vggq.jpg" ); } .slider--el.anim -4 parts .part. top { top : 0 ; -webkit- transition : -webkit-transform 1.3 s 0.3 s; transition : transform 1.3 s 0.3 s; } .slider--el.anim -4 parts .part. top :before { top : 0 ; } ...... |
然后在点击导航按钮之后通过translateX
属性分别将它们移出屏幕之外。
.slider--el.anim -4 parts . left { -webkit- transform : translateX ( -100% ); -ms- transform : translateX ( -100% ); transform : translateX ( -100% ); } .slider--el.anim -4 parts . right { -webkit- transform : translateX ( 100% ); -ms- transform : translateX ( 100% ); transform : translateX ( 100% ); } |
其它代码请参考下载文件。
网盘下载密码:4e68