水平アコーディオンメニューに沿って何かを作成するのに問題があります。コードが進むにつれてそれを最小限に抑えようとしているので、ページ上で邪魔にならず、モバイルやデスクトップで簡単に使用できます。
メニューをアニメーション化して開くことができましたが、別のボタンをクリックした場合は、開いているボタンを閉じたいと思いました。単純な「if」「else」ステートメントだと思いますが、何度も何度も試したので、期待どおりに機能しないようです。
私が持っているコードは次のとおりです。
HTML:
<nav>
<ul>
<li> <a href="#"><img src="images/header_icon_home.gif" width="45" height="45" alt="home"></a>
<span>home</span></li>
<li> <a href="#"><img src="images/header_icon_portfolio.gif" width="45" height="45" alt="porfolio"></a>
<span>portfolio</span></li>
<li> <a href="#"><img src="images/header_icon_blog.gif" width="45" height="45" alt="blog"></a>
<span>blog</span></li>
<li> <a href="#"><img src="images/header_icon_about.gif" width="45" height="45" alt="about"></a>
<span>about</span></li>
<li> <a href="#"><img src="images/header_icon_contact.gif" width="45" height="45" alt="contact"></a>
<span>contact</span></li>
<li> <a href="#"><img src="images/header_icon_search.gif" width="45" height="45" alt="search"></a>
<span class="search"><input name="search" id="search" ></input></span></li>
</ul>
</nav>
CSS:
nav ul {
position:absolute;
right:0;
top: 42px;
}
nav ul li {
display: inline-block;
float:left;
}
nav ul li img {
float:left;
}
nav ul li span {
background-color: #333;
color: #fff;
padding: 13px 5px;
float:left;
font-size:16px;
display:none;
}
nav ul li span.search {
padding: 12px 10px 12px 5px;
background-color: #666;
}
nav ul li span input {
font-size:12px;
}
JAVASCRIPT:
$('nav ul li a').click(function() {
$(this).next().animate({width: 'toggle'}, 200);
});
また
$('nav ul li a').click(function() {
$(this).next().animate({width: 'show'}, 600);
});