如何实现翻书效果在一些小说站中经常应用,其实实现起来也很简单,下面是用div+css
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>
body{
overflow: hidden;
margin: 0;
padding: 0;
}
#book{
position: absolute;
left: 50%;
top: 50%;
margin-left: -325px;
margin-top: -300px;
height: 600px;
width: 750px;
transform-style: preserve-3d;
transform:perspective(1000px) rotateX(60deg) rotateY(0deg);
transition: 1s;
}
#book:hover{
transform:perspective(1000px) rotateX(0deg) rotateY(0deg);
}
#book div{
height: 600px;
width: 750px;
text-align: center;
line-height: 600px;
position: absolute;
left: 0;
top: 0;
transform-origin: left;
transition: 1s;
}
#book div:nth-of-type(odd){
background: orange;
}
#book div:nth-of-type(even){
background: yellow;
}
#book:after{
content: "";
position: absolute;
width: 600px;
height: 5px;
background: rgba(0,0,0,0.8);
left:75px;
z-index: -2;
bottom: -10px;
border-radius: 70%;
box-shadow: 0px 0px 25px 15px rgba(0,0,0,0.8);
}
</style>
<script>
window.onload=function(){
var book=document.getElementById("book");
var pages=book.getElementsByTagName("div");
var pageNumber=4,rota=-180;
book.onclick=function(){
book.style.left="65%";
pages[pageNumber].style.transform="rotateY("+rota+"deg)";
pageNumber--;
rota+=10;
if(pageNumber<0){
for(var i=0;i<pages.length;i++){
pages[i].style.transform="rotateY(0deg)";
}
book.style.left="50%";
pageNumber=4;
rota=-180;
}
}
}
</script>
</head>
<body>
<div id="book">
<div>5</div>
<div>4</div>
<div>3</div>
<div>2</div>
<div>1</div>
</div>
</body>
</html>
如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html5/h18517.shtml