Twitter начальной загрузки жидкости-контейнер боковой панели тумблер


Я использую Twitter bootstrap для разработки приложения. 2 колонки. Одна боковая панель и основной контент. Ниже приведен макет.

<div class="container-fluid">
<div class="row-fluid">
<div class="span3 target">
<!--Sidebar content-->
</div>
<div class="span9 ">
        <i class="icon-chevron-left toggles"></i>
<!--Body content-->
</div>
</div>
</div> 

При нажатии на ссылку внутри содержимого я хочу скрыть боковую панель и содержимое, чтобы занять всю страницу. В настоящее время мне удалось сделать это таким образом,

$(document).ready(function(){
$(window).resize(function () { plot(); });

$('.toggles').click(function() {
  $('.target').toggle('fast', function() {
    $('.contents').toggleClass('span12'),
    $('.contents').toggleClass('span9'),
    $('.toggles').toggleClass('icon-chevron-right'),
  });
});
});

Но я вижу поле в левой части после скрытия span3. Это нужно убрать. Также в этом методе скрытия, при первом щелчке span3 скрывается, а span9 изменяется на span12. Тот как-то работает нормально. Но при втором щелчке span3 показывает сначала, а затем только содержимое span12 уменьшается до span9. Из-за этого содержание скачет вниз, пока оно не сократится до span9. Я хочу все исправить. При втором щелчке, span12 для span 9 сначала, а затем боковая панель показать.. что-то вроде того.

Я видел много сообщений, подобных этому, в которых классы "content" и "sidebar" используются вместо "spanXX". Но в моем случае это не работает. Я не знаю почему. Помогите мне, пожалуйста..

2 15

2 ответа:

Ваш span9 div прыгает вниз из-за анимации эффекта переключения jQuery добавляет, он анимирует как ширину, так и высоту, поэтому ваше содержимое, которое находится вокруг div, который переключается, выталкивается вниз по ходу анимации. Вы можете преодолеть это, ускорив процесс анимации до примерно 100 миллисекунд или полностью расположив боковую панель. А что касается вопроса о марже, который связан с самим bootstrap.css, то в строке 222 мы имеем следующее:

.row-fluid > [class*="span"]:first-child {
  margin-left: 0;
}

The first-child псевдо-элемент приписывает margin:0 первому элементу, который в данном случае является переключаемой боковой панелью, поэтому после скрытия боковой панели второй тег span (content div) не наследует это свойство и остается с тегом по умолчанию margin, применяемым к тегу span, например

.row-fluid > [class*="span"] {
  float: left;
  margin-left: 2.127659574%;
}

Вы можете преодолеть эту проблему с маржой с помощью jQuery.

Вот несколько демо, которые я сделал:


Обновил скрипку с исправлением проблемы комментатор обнаружил, что я не заметил, теперь он работает нормально. Добавлен класс .no-sidebar, добавляемый при переключении, который удаляет margin-left, созданный загрузчиком, поэтому теперь он отлично работает с отзывчивой таблицей стилей.

Http://jsfiddle.net/andresilich/dQ5b7/23/

Попробуйте эти два


Код
https://github.com/IronSummitMedia/startbootstrap-simple-

Демо-версия
http://ironsummitmedia.github.io/startbootstrap-simple-sidebar


Обновление ( добавление еще одного)

Код
http://www.bootstrapzero.com/bootstrap-template/facebook

Демо-версия
http://www.bootply.com/render/96266