欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

两个重叠的div做前后翻转

程序员文章站 2023-11-04 13:23:28
当需要做一个翻转卡片式的div时候,需要两个div的大小等大例如: 画出两个等大的div后,将他们重叠 图中的两个div做了重叠,做重叠时候用的属性是 并且需要将第一页的css里加上z-index 可以使的第一页在第二页上 main的css需要添加 课使旋转中心在div的中点 再做完重叠后需要用 这 ......

 

当需要做一个翻转卡片式的div时候,需要两个div的大小等大例如:

两个重叠的div做前后翻转

画出两个等大的div后,将他们重叠

两个重叠的div做前后翻转

图中的两个div做了重叠,做重叠时候用的属性是

position: absolute;

并且需要将第一页的css里加上z-index 可以使的第一页在第二页上

main的css需要添加

transform: translate(-50%,-50%);

课使旋转中心在div的中点

 

再做完重叠后需要用

transform: rotatey(-180deg);

这条语句把第二个div事先令它翻转180度,为的是再翻转回来的时候是正常的

 

接下来定义再定义两个优先级最高的css样式 用于翻转操作

        #first.first-turn{
            z-index: 0;
            transform: rotatey(-180deg);
        }
        #second.second-turn{
            transform: rotatey(0deg);
        }

翻转的过程中将第一个div的z-index改为0

最后定义用jq定义两个点击事件

<script>
    $("#first").click(
        function(){
            $("#first").toggleclass("first-turn");
            $("#second").toggleclass("second-turn");
        }
    )
    $("#second").click(
        function(){
            $("#first").toggleclass("first-turn");
            $("#second").toggleclass("second-turn");
        }
    )
</script>

意思为,当点击时候增加一个css

如果要修改翻转速度可以在第一个div和第二个div的css里添加如下语句。调试可以通过谷歌浏览器

transition: .5s cubic-bezier(0.48,-0.56, 0.51, 1.67);

 

完整代码:

 1 <!doctype html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="utf-8">
 5     <title>翻转div</title>
 6     <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
 7     <style>
 8         #main{
 9             position: absolute;
10             width: 200px;
11             height: 200px;
12             transform: translate(-50%,-50%);
13         }
14         #first{
15             position: absolute;
16             width: 100%;
17             height: 100%;
18             background-color: #0a9404;
19             z-index: 1;
20             transition: .5s cubic-bezier(0.48,-0.56, 0.51, 1.67);
21         }
22         #second{
23             position: absolute;
24             width: 100%;
25             height: 100%;
26             background-color: #aa1111;
27             transform: rotatey(-180deg);
28             transition: .5s cubic-bezier(0.48,-0.56, 0.51, 1.67);
29         }
30         #first.first-turn{
31             z-index: 0;
32             transform: rotatey(-180deg);
33         }
34         #second.second-turn{
35             transform: rotatey(0deg);
36         }
37     </style>
38 </head>
39 <body>
40 <div id="main">
41     <div id="first"></div>
42 
43     <div id="second"></div>
44 </div>
45 </body>
46 
47 <script>
48     $("#first").click(
49         function(){
50             $("#first").toggleclass("first-turn");
51             $("#second").toggleclass("second-turn");
52         }
53     )
54     $("#second").click(
55         function(){
56             $("#first").toggleclass("first-turn");
57             $("#second").toggleclass("second-turn");
58         }
59     )
60 </script>
61 
62 </html>