Result
CSSのみでシンプルなパララックス効果を実装
スクロールするとheaderとズレが出ているのが確認できます
css
html {
height : 100% ;
overflow : hidden ;
}
body {
color : #fff ;
margin : 0 ;
padding : 0 ;
perspective : 1px ;
transform-style : preserve -3 d;
height : 100% ;
overflow-y : scroll ;
overflow-x : hidden ;
}
header {
box-sizing : border-box ;
min-height : 40 vw;
padding : 30 vw 0 5 vw;
position : relative ;
transform-style : inherit ;
width : 100 vw;
}
header, header:before {
background : 50% 50% / cover ;
}
header::before {
bottom : 0 ;
content : "" ;
left : 0 ;
position : absolute ;
right : 0 ;
top : 0 ;
display : block ;
background-color : #8a8 ;
background-image : url (https://picsum.photos/ 1900 / 1200 );
background-size : cover ;
transform-origin : center center 0 ;
transform : translateZ( -1px ) scale ( 2 );
z-index : -1 ;
min-height : 100 vh;
}
header * {
font-weight : normal ;
letter-spacing : 0.2em ;
text-align : center ;
margin : 0 ;
padding : 1em 0 ;
}
|
html
< header >
< h1 >hoge</ h1 >
< p >foo bar</ p >
</ header >
|
via
Pure css Parallax header