У меня есть скрытая панель с левой стороны экрана, которая появляется при щелчке «вкладки», расположенной в левой части экрана. Мне нужно, чтобы панель скользила поверх существующего содержимого страницы, и мне нужна вкладка, чтобы перемещаться вместе с ней. и так оба абсолютно позиционированы в css. Все работает нормально, за исключением того, что мне нужно, чтобы вкладка (и, следовательно, вкладка-контейнер) перемещалась влево вместе с панелью, когда она открывается, поэтому она кажется застрявшей в правой части панели. Это относительно просто при использовании плавающих элементов, но, конечно, это влияет на макет существующего контента и, следовательно, на абсолютное позиционирование. Я попытался анимировать левую позицию панели-контейнера (см. документированную функцию jquery), но не могу заставить ее работать.
Это пример исходного кода, который я изменил, как я могу заставить кнопку/вкладку скользить?
http://www.iamkreative.co.uk/jquery/slideout_div.html
Мой HTML
<div><!--sample page content-->
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
</p>
</div>
<div id="panel" class="height"> <!--the hidden panel -->
<div class="content">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore</p>
</div>
</div>
<!--if javascript is disabled use this link-->
<div id="tab-container" class="height">
<a href="#" onclick="return()">
<div id="tab"><!-- this will activate the panel. --></div>
</a>
</div>
Мой jQuery
$(document).ready(function(){
$("#panel, .content").hide(); //hides the panel and content from the user
$('#tab').toggle(function(){ //adding a toggle function to the #tab
$('#panel').stop().animate({width:"400px", opacity:0.8}, 100, //sliding the #panel to 400px
// THIS NEXT FUNCTION DOES NOT WORK -->
function() {
$('#tab-container').animate({left:"400px"} //400px to match the panel width
});
function() {
$('.content').fadeIn('slow'); //slides the content into view.
});
},
function(){ //when the #tab is next cliked
$('.content').fadeOut('slow', function() { //fade out the content
$('#panel').stop().animate({width:"0", opacity:0.1}, 500); //slide the #panel back to a width of 0
});
});
});
а это css
#panel {
position:absolute;
left:0px;
top:50px;
background-color:#999999;
height:500px;
display:none;/*hide the panel if Javascript is not running*/
}
#panel .content {
width:290px;
margin-left:30px;
}
#tab-container{
position:absolute;
top:20px;
width:50px;
height:620px;
background:#161616;
}
#tab {
width:50px;
height:150px;
margin-top:100px;
display:block;
cursor:pointer;
background:#DDD;
}
Большое спасибо