我的家庭导航的Css过渡

时间:2013-04-15 02:24:48

标签: css menu transition nav

我自己为我的网站创建了一个导航菜单,我不是专家,但我认为菜单结果很棒......我希望我的菜单打开速度稍慢一点,也许有一个.5s过渡...我试图实现自己,但我似乎无法弄清楚....我已经创建了一个jsfiddle来显示我的导航栏...我希望有人可以告诉我如何如果可能的话,转换到所有下拉菜单......谢谢

jsfiddle:http://jsfiddle.net/vRdEp/(这里有点破了) 我的网站:www.curious-howto.com

我的css:

ul#navitemul {
border-radius: 0px 20px 20px 20px;
margin:0px!important;
width:500px;
}

.belownav {
top:0px;
left:183px;
position:absolute;
z-index:100;
box-shadow: 0 0 10px #000 inset;
border-radius: 5px 0px 0px 5px;
padding:20px!important;
background:#282828!important;
}

.navitem a {
margin-right: 10px;
border: 1px solid #424242!important;
text-overflow:ellipsis;
display:block;
overflow:hidden;
border-radius:5px;
width:200px!important;
padding:0px!important;
float:left;
height:40px;
background:#424242!important;
}

.navitem a:hover {
border:1px solid #585858!important;
background:#000!important;
}

img.fl {
float:left;
}

span.marleft {
letter-spacing:1px;
font-size:12px!important;
text-decoration:none;
color:white!important;
margin-left:15px!important;
line-height:38px;
}

li.marright{
float:left!important;
margin-bottom:10px!important;
margin-right:10px!important;
}

.ontop{
color:white;
font-size:28px!important;
margin-bottom:20px!important
}

ul#loginmenu {
border-radius:0px 0px 30px 30px;
z-index:1000;
left:200px;
width:500px!important;
overflow:auto;
max-height:600px;
left:-100px!important;
}

li.logo {
margin:0px!important;
line-height:10px!important;
border-radius: 30px 0px 0px 0px;
padding:10px 40px 10px 40px!important
}

span#navlogo {
font-size:20px;
}

#menu{
position:relative;
top:10px;
width:80%;
max-width:750px;
min-width:660px;
height:47px;
border-radius: 30px 30px 0px 0px;
background-color:#172322;
margin:0px;
padding:0px;
list-style:none;
color:#fff;
display:inline-block;
float:right;
z-index:1000;
}

#menu a {
color:#fff;
text-decoration:none;
}

#menu > li {
transition:width 2s, height 2s;
-webkit-transition:width 2s, height 2s, -webkit-transform 2s;
/* Safari */padding: 13px 0px;
background:#172322 none repeat scroll 0 0;
cursor:pointer;
float:left;
position:relative;
}

#menu > li a:hover {
color:#B0D730;
}

#menu .logo {
background-color: #7cb7e3;
width:87px;
padding:0px;
}

/* sub-menus*/ 
#menu ul {
padding:0px;
margin:0px;
display:block;
display:inline;
}

#menu li ul {
position:absolute;
left:-24px;
top:0px;
margin-top:45px;
line-height:16px; 
background-color:#172322;
color:#0395CC;
/* for IE */ display:none;
}

#menu li:hover ul {
display:block;
}

#menu li ul li{
display:block;
margin:5px 20px;
padding: 5px 0px;
list-style-type:none; 
}

#menu li ul li:first-child {
border-top: none;
}

#menu li ul li a {
display:block;
color:#0395CC;
}

#menu li ul li a:hover {
color:#7FCDFE;
}

/* main submenu */ 
#menu #main li {
text-align:center;
margin:10px 10px 10px 10px!important
}

#menu #main {
border-radius: 0px 0px 30px 30px;
width:167px;
left:0px;
top:-20px;
padding-top:20px;
background-color:#7cb7e3;
color:#fff;
z-index:999;
}

/* search */ 
.searchContainer div {
background-color:#fff;
display:inline;
padding:5px;
}

.searchContainer input[type="text"] {
border:none;
}

.searchContainer ul {
vertical-align:middle;
}

1 个答案:

答案 0 :(得分:1)

问题是当属性发生变化时,转换会为属性设置动画。例如,如果我有一个100px宽的div,那么为它添加一个类,将其切换为300px宽,你可以设置transition: width 3s并且它会在3秒的时间内增长。 在您的情况下,所有变化都是display:block / display:hidden 为了让它转换,你需要改变一些东西,而不是用display:hidden来隐藏它,你将它隐藏起来,把它缩小到非常微小和不断增长,或者改变不透明度等等。 / p>

相关问题