Я пытаюсь сделать эту навигацию для веб-сайта, и, похоже, сейчас она работает, я просто не могу получить правильную анимацию. Я попытался использовать анимацию, но я не мог заставить ее работать, и я не уверен, что это даже лучший способ обойти ее.navigation slide in issue
Я хочу, чтобы мои меню скользят со стороны, в которой они живут, - не уменьшайте масштаб с верхнего угла, как это делает стандартная .show/.hide.
HTML
<div class="wrapper">
<div class="nav">
<a href="#" class="nav-show">menu</a>
<a href="#" class="search-show">search</a>
<div class="nav-wrap">
<ul>
<li><a herf="#">1</a></li>
<li><a herf="#">2</a></li>
<li><a herf="#">3</a></li>
<li><a herf="#">4</a></li>
<li><a herf="#">4</a></li>
<li><a herf="#">4</a></li>
<li><a herf="#">4</a></li>
<li><a herf="#">4</a></li>
<li><a herf="#">4</a></li>
<li><a herf="#">4</a></li>
<li><a herf="#">4</a></li>
</ul>
</div>
<div class="search-wrap">
<ul>
<li><a herf="#">1</a></li>
<li><a herf="#">2</a></li>
<li><a herf="#">3</a></li>
<li><a herf="#">4</a></li>
<li><a herf="#">4</a></li>
<li><a herf="#">4</a></li>
<li><a herf="#">4</a></li>
<li><a herf="#">4</a></li>
<li><a herf="#">4</a></li>
<li><a herf="#">4</a></li>
<li><a herf="#">4</a></li>
</ul>
</div>
</div>
</div>
CSS
body {background-color:#567;}
* {margin:0; padding:0;}
ul, li {margin:0; padding:0;}
.wrapper {width:100%; height:60px; background-color:#333;}
.nav {width:100%; height:60px;}
.nav-show {width:60px; background-color:#666; color:#FFF; display:inline-block; height:100%; line-height:60px; text-align:center;}
.search-show {width:60px; background-color:#666; color:#FFF; display:inline-block; height:100%; line-height:60px; text-align:center; float:right;}
.nav-wrap {width:90%; background-color:#999; color:#000;padding:10px; display:none; position:fixed; top:60px; left:0; bottom:0; overflow:auto;}
.nav-wrap ul {list-style:none; background-color:#F60;}
.nav-wrap ul li {height:60px; width:100%; background-color:#CCC;margin-bottom:5px;}
.search-wrap {width:90%; background-color:#999; color:#000;padding:10px; display:none; position:fixed; top:60px; right:0; bottom:0; overflow:auto;}
.search-wrap ul {list-style:none; background-color:#F60;}
.search-wrap ul li {height:60px; width:100%; background-color:#CCC;margin-bottom:5px;}
Jquery
$(document).ready(
function(){
$(".nav-show").click(function() {
$(".search-wrap").hide("slow");
$(".nav-wrap").toggle("slow");
});
$(".search-show").click(function() {
$(".nav-wrap").hide("slow");
$(".search-wrap").toggle("slow");
});
});
я также сделал fiddle
Я знаю, что мой код jquery не самый лучший, я довольно новобранец, поэтому, если это можно сделать умнее, мне бы очень хотелось его увидеть. Может быть, лучше использовать CSS3 для анимации?
Может быть, это поможет http://stackoverflow.com/questions/14823305/slide-div-left-right-using-jquery – Xareyo
ааа выглядит, как я прочитал это неправильно, я думал, что вы хотели он сдвинется вниз слева, но да, ссылка YaMo заставит вас использовать второй ответ, не требуя jQuery UI – Charles380
Но мне нужно иметь ширину 90%, а не фиксированную ширину - тогда этот пример не будет работать? – implum