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 ответа:
Ваш
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
, созданный загрузчиком, поэтому теперь он отлично работает с отзывчивой таблицей стилей.
Попробуйте эти два
Код
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