slideToggle всего div

#javascript #css #slidetoggle

#javascript #css #просмотр слайдов

Вопрос:

Я разрабатываю страницу, содержимое которой скрыто за кнопкой переключения jquery. Я хочу, чтобы оболочка содержимого расширялась как по горизонтали, так и по вертикали при нажатии (в настоящее время оболочка расширяется только по вертикали).

Я не уверен, как организовать мои файлы. В настоящее время оболочка имеет следующие атрибуты css:

 #wrapper {
width: 900px;
margin: 0 auto;
margin-top: 40px;
background-color:#FFF;
border-radius: 42px;
-moz-border-radius:42px;
padding:30px;
-webkit-box-shadow: 0 0 10px #000;
}
  

«Панель» div управляет javascript через:

 <script type="text/javascript">
    $(document).ready(function(){

$(".btn-slide").click(function(){
    $("#panel").slideToggle("slow");
    $(this).toggleClass("active"); return false;
}); 
    });
</script>
  

Изменение ширины #wrapper непосредственно в css приводит к усечению содержимого внутри slideToggle: ie. оболочка не будет расширяться до нужного горизонтального размера после скольжения, если задана ширина. С другой стороны, если я удалю атрибут width , страница больше не будет должным образом обернута. Как я должен исправить эту проблему?

 <div id="wrapper" >
<div id="intro" class="content-wrapper"><a href="#" class="btn-slide"><span class="content">CONTENT</span></a>
    <div class="wrapper-inner container"><div class="home-page container">
        <div id="panel">
  

Комментарии:

1. Можете ли вы использовать какую-нибудь скрипку: jsfiddle.net

2. Спасибо за ответы. Кайл, я добавил соответствующий html. Сильвио, к сожалению, я не смог найти ответ с помощью fiddle. Спасибо за совет

Ответ №1:

Не уверен, что я полностью понимаю проблему, но вот 2 возможных решения:
1. используйте метод jQuery .animate() вместо slideToggle, который предоставит вам всю необходимую гибкость.
2. если у вас возникли проблемы с окружающим макетом, поместите свою оболочку внутри div с фиксированным размером и измените #wrapper на position:absolute

Комментарии:

1. Спасибо karnyj. Сейчас я использую animate, но у меня возникают проблемы с расширением ширины при нажатии. Ширина моей оболочки составляет 300 пикселей, но я хочу, чтобы она расширялась до 900 пикселей по щелчку. Для дескриптора jquery установлено значение panel, которое анимируется для «переключения» высоты. Как я могу увеличить ширину оболочки, когда панель расширяется при нажатии кнопки? Большое спасибо

2. Спасибо animate(); был ответ