0

私は自分のウェブサイト用に自分でナビゲーションメニューを作成しました。私は専門家ではありませんが、メニューは素晴らしいものになったと思います...メニューがインスタントよりも少し遅く開くようにしたいと思います.5秒のトランジション..私は自分自身を実装しようとしましたが、私はそれを理解することができないようです....私は自分のナビゲーションバーを表示するために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;
}
4

1 に答える 1

1

問題は、プロパティが変更されたときにトランジションがプロパティをアニメーション化することです。たとえば、幅 100 ピクセルの div があり、それにクラスを追加して幅 300 ピクセルに切り替えると、設定できtransition: width 3s、その 3 秒間で大きくなります。あなたの場合、変更されているのはdisplay:block/display:hidden それを移行させるには、 で非表示にするのではなく、display:hidden縮小して非常に小さく成長させるか、不透明度を変更して非表示にするように変更する必要がありますなど

于 2013-04-15T02:43:30.030 に答える