В этой статье речь пойдет о том, как поступить, если стоит задача сделать боковую выдвижную панель.
HTML разметка останется почти такой же - понадобится лишь перенести кнопку в блок slide_panel и задать ей класс, например, open (вместо абзаца p кнопку можно обернуть в любой другой допустимый тег - div, span, a и т.д.):Код
<div class="slide_panel_wrap"> <p></p>
<div class="slide_panel">
<p class="open">Открыть</p>
<p>В этом блоке может содержаться любой контент.</p>
<p>В этом блоке может содержаться любой контент. В этом блоке может содержаться любой контент.</p>
<p>В этом блоке может содержаться любой контент.</p>
</div>
</div>
Теперь "причешем" конструкцию, что бы на нее было приятнее смотреть:Код
.slide_panel_wrap {margin:40px auto;
width:300px;
position:relative; /*обязательное свойство*/overflow:hidden; /*обязательное свойство*/}
.slide_panel {
margin-left:-201px; /*обязательное свойство*/padding:20px;
width:160px;
position:relative; /*обязательное свойство*/top:0; /*обязательное свойство*/left:0; /*обязательное свойство*/border:1px solid #367aab;
}
.slide_panel p.open {
padding:3px 5px;
position:absolute; /*обязательное свойство*/top:10px; /*обязательное свойство*/left:200px; /*обязательное свойство*/border:1px solid #367aab;
cursor:pointer;
}
Для блока-обертки .slide_panel обязательно задаем ширину width (в нашем случае она будет равна 202px - 160px ширина текста + 20px
внутренние отступы справа и с лева + 2px рамка справа и с лева), с
помощью свойств position:relative;, top:0; и left:0; прижимаем блок с текстом к левой стороне и свойством margin-left:-201px; прячем его (останется видимым только правая рамка).Ну и наконец, блок с кнопкой p.open при помощи свойств position:absolute;, top:10px; и left:200px; позиционируем с правой части текстового блока (что бы он всегда оставался видимым).Теперь осталось только написать небольшой js код, что бы панель заработала:Код
$(document).ready(function(){ $("div.slide_panel p.open").toggle(function(){
$("div.slide_panel").animate({left:'201px'},500);}, function() {
$("div.slide_panel").animate({left:0},500);
});
});
Скрывать и показывать панель будем с помощью методов toggle и animate. По умолчанию панель скрыта. Когда произойдет щелчек по кнопке, с помощью animate сдвинем вправо панель на 201px ({left:'201px'}) за полсекунды (500). При повторном клике панель сдвинется в обратном направлении за такое же время.Если требуется прижать панель к правому краю, то нужно всего лишь внести соответствующие изменения в css и js, что бы достичь желаемого
результата.Ну и в заключении хотелось бы упомянуть, что описанный метод отлично работает в ИЕ 7-8-9, Safari, FF и Chrome.
Автор: Super User