首页 > 代码库 > 3D旋转菜单

3D旋转菜单

今天来个3D旋转菜单,是纯css3实现的,主要用到transform,transition,backface-visibility。

主要是transform这个变换,它是今天猪脚。

transform里有transform-style 属性规定如何在 3D 空间中呈现被嵌套的元素。

transform-origin 属性允许您改变被转换元素的位置。

backface-visibility 属性定义当元素不面向屏幕时是否可见。

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
    .nav{margin:0;
        padding:50px;}
.nav li{float:left; 
    list-style:none;
    padding:0 15px; 
    -webkit-perspective:100px;}
.nav a{float:left; 
    position:relative; 
    font:14px/20px "宋体"; 
    text-decoration:none; 
    -webkit-transform-style:preserve-3d; 
    transition:.5s; 
    -webkit-transform-origin:center center -10px;}
    .nav a:hover{ 
        -webkit-transform:rotateX(-90deg);}
.nav span{float:left;
    width:60px; 
    text-align:center; 
    -webkit-backface-visibility:hidden;}
.nav span:nth-of-type(2){ 
    position:absolute;
    left:0; 
    top:-20px;
    -webkit-transform-origin:bottom; 
    -webkit-transform:rotateX(90deg);}

    </style>
</head>
<body>
    <ul class="nav">
        <a href="#">
            <span>选项一</span>
            <span>选项1</span>
        </a>
        <a href="#">
            <span>选项二</span>
            <span>选项2</span>
        </a>
        <a href="#">
            <span>选项三</span>
            <span>选项3</span>
        </a>
        <a href="#">
            <span>选项四</span>
            <span>选项4</span>
        </a>
    </ul>
</body>
</html>

 

3D旋转菜单