为什么我的实现不了翻页效果呀?

来源:3-1 创建3D动画效果结构部分

2393611203

2016-04-05 12:54

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>翻页</title>
    <style type="text/css">
#my3dspace{
perspective:800px;
-moz-perspective:800px;
-webkit-perspective:800px;
-o-perspective:800px;
perspective-origin:50% 50%;
-moz-perspective-origin:50% 50;
-webkit-perspective-origin:50% 50%;
-o-perspective-origin:50% 50%;
overflow:hidden;
}
#pagegroup
{
width:400px;
height:400px;
margin:0 auto;
position:relative;
transform-style:preserve-3d;
   -moz-transform-style:preserve-3d;
-webkit-transform-style:preserve-3d;
---o-transform-style:preserve-3d;
}
.page{
width:360px;
height:360px;
padding:20px;
font-size:360px;
font-weight:bold;
line-height:360px;
text-align:center;
background:black;
color:white;
position:absolute;
}
#page1{
transform-origin:bottom;
-moz-transform-origin:bottom;
-webkit-transform-origin:bottom;
-o-transform-origin:bottom;
transition:transform 1s linear;
-moz-transition:-moz-transform 1s linear;
-webkit-transition:-webkit-transform 1s linear;
-o-transition:-o-transform 1s linear;
}
#page2,#page3,#page4,#page5,#page6{
transform-origin:bottom;
-moz-transform-origin:bottom;
-webkit-transform-origin:bottom;
-o-transform-origin:bottom;
transition:transform 1s linear;
-moz-transition:-moz-transform 1s linear;
-webkit-transition:-webkit-transform 1s linear;
-o-transition:-o-transform 1s linear;
transform:rotateX(90deg);
-moz-transform:rotateX(90deg);
-webkit-transform:rotateX(90deg);
-o-transform:rotateX(90deg);
}
#op{
text-align:center;
margin:40px auto;
}
</style>
<script type="text/javascript">
var curIndex=1;
function next()
{
if(curIndex==6)
return;
var curPage=document.getElementById("page"+curIndex);
curPage.style.webkitTransform="rotateX(-90deg)";
curIndex++;
var nextPage=document.getElementById("page"+curIndex);
nextPage.style.webkitTransform="rotateX(0deg);
}
function prev()
{
if(curIndex==1)
return;
var curPage=document.getElementById("page"+curIndex);
curPage.style.webkitTransform="rotateX(90deg)";
curIndex--;
var prevPage=document.getElementById("page"+curIndex);
prevPage.style.webkitTransform="rotateX(0deg);
}
</script>
</head>
<body>
<div id="my3dspace">
<div id="pagegroup">
<div id="page1">1</div>
<div id="page2">2</div>
<div id="page3">3</div>
<div id="page4">4</div>
<div id="page5">5</div>
<div id="page6">6</div>
</div>
</div>
<div id="op">
<a href="javascript:next()">next</a>
<a href="javascript:prev()">previous</a>
</div>
</body>
</html>


写回答 关注

1回答

  • 柏龙博客
    2016-04-06 16:14:52

    #page1到6需要添加class="page"
    80 行 90行 少引号

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>翻页</title>
        <style type="text/css">
    #my3dspace{
    perspective:800px;
    -moz-perspective:800px;
    -webkit-perspective:800px;
    -o-perspective:800px;
    perspective-origin:50% 50%;
    -moz-perspective-origin:50% 50;
    -webkit-perspective-origin:50% 50%;
    -o-perspective-origin:50% 50%;
    overflow:hidden;
    }
    #pagegroup
    {
    width:400px;
    height:400px;
    margin:0 auto;
    position:relative;
    transform-style:preserve-3d;
       -moz-transform-style:preserve-3d;
    -webkit-transform-style:preserve-3d;
    ---o-transform-style:preserve-3d;
    }
    .page{
    width:360px;
    height:360px;
    padding:20px;
    font-size:360px;
    font-weight:bold;
    line-height:360px;
    text-align:center;
    background:black;
    color:white;
    position:absolute;
    }
    #page1{
    transform-origin:bottom;
    -moz-transform-origin:bottom;
    -webkit-transform-origin:bottom;
    -o-transform-origin:bottom;
    transition:transform 1s linear;
    -moz-transition:-moz-transform 1s linear;
    -webkit-transition:-webkit-transform 1s linear;
    -o-transition:-o-transform 1s linear;
    }
    #page2,#page3,#page4,#page5,#page6{
    transform-origin:bottom;
    -moz-transform-origin:bottom;
    -webkit-transform-origin:bottom;
    -o-transform-origin:bottom;
    transition:transform 1s linear;
    -moz-transition:-moz-transform 1s linear;
    -webkit-transition:-webkit-transform 1s linear;
    -o-transition:-o-transform 1s linear;
    transform:rotateX(90deg);
    -moz-transform:rotateX(90deg);
    -webkit-transform:rotateX(90deg);
    -o-transform:rotateX(90deg);
    }
    #op{
    text-align:center;
    margin:40px auto;
    }
    </style>
    <script type="text/javascript">
    var curIndex=1;
    function next()
    {
    if(curIndex==6)
    return;
    var curPage=document.getElementById("page"+curIndex);
    curPage.style.webkitTransform="rotateX(-90deg)";
    curIndex++;
    var nextPage=document.getElementById("page"+curIndex);
    nextPage.style.webkitTransform="rotateX(0deg)";
    }
    function prev()
    {
    if(curIndex==1)
    return;
    var curPage=document.getElementById("page"+curIndex);
    curPage.style.webkitTransform="rotateX(90deg)";
    curIndex--;
    var prevPage=document.getElementById("page"+curIndex);
    prevPage.style.webkitTransform="rotateX(0deg)";
    }
    </script>
    </head>
    <body>
    <div id="my3dspace">
    <div id="pagegroup">
    <div class="page" id="page1">1</div>
    <div class="page" id="page2">2</div>
    <div class="page" id="page3">3</div>
    <div class="page" id="page4">4</div>
    <div class="page" id="page5">5</div>
    <div class="page" id="page6">6</div>
    </div>
    </div>
    <div id="op">
    <a href="javascript:next()">next</a>
    <a href="javascript:prev()">previous</a>
    </div>
    </body>
    </html>


    239361... 回复柏龙博客

    谢谢你

    2016-04-06 21:25:48

    共 2 条回复 >

CSS3 3D 特效

使用CSS3当中的属性,创建真实可用的三维效果

78572 学习 · 425 问题

查看课程

相似问题