Выдвижная панель
Есть скрипт выдвижной панели
Добавил сбоку бордюр в виде панели "А" В скрипт вписал: $("div.reltr").animate({left:300},0);- когда любой из блоков открывается и $("div.reltr").animate({left:0},0);- когда закрывается Но панель "А" отстает от блоков по времени а не как бы приклеена к краю блоков. Вот наглядно посмотрите: http://jsfiddle.net/qwertylist/zfsfbbLy/2/ |
|
Огромное спасибо, долго мучился. Осталось только куки прикрутить
, но думаю что нужно будет класс добавлять через addClass. |
Добавил к коду запоминание состояния панелей в куки:
При клике на элемент управления вначале проверяем есть ли кука, если нет - создаем массив с состояниями когда все блоки открыты, если есть, читаем строку из нее и далее функцией .split() формируем из строки массив. Учитываем что элемент массива: имя блока уменьшенное на единицу. Обращаемся к родительскому блоку, данного элемента управления Если у этого блока стоит соответствующий класс, т.е. блок скрыт - изменяем соответствующий элемент массива на 1 - блок открыт. В противном случае 0 - блок закрыт. Склеиваем массив обратно в строку. Записываем строку состояний в куку. Учитываем что элемент массива: имя блока уменьшенное на единицу. Читаем куку в переменную. Если кука есть формируем из ее содержимого массив и если соответствующий элемент массива равен состоянию закрытого блока (0) - добавляем соответствующему блоку класс с оформлением для закрытого блока. function setState (blockName) { $('#inset_header'+blockName).click(function() { var blockStateCookie = $.cookie('blockState'); if (blockStateCookie == null) var blockState = [1, 1, 1, 1, 1]; else var blockState = blockStateCookie.split(''); var arrEl = blockName-1; if ($(this).parent().is('.hide')) blockState [arrEl] = 1; else blockState [arrEl] = 0; var blockStateCookie = blockState.join(''); $.cookie('blockState', blockStateCookie, { expires: 10000, path: '/' }); }); }; function restoreState (blockName) { var arrEl = blockName-1, blockStateCookie = $.cookie('blockState'); if (blockStateCookie != null) { blockState = blockStateCookie.split(''); if (blockState [arrEl] == 0) { $('#inset_header'+blockName).addClass('hide'); } } }; restoreState ('1'); setState ('1'); restoreState ('2'); setState ('2'); restoreState ('3'); setState ('3'); restoreState ('4'); setState ('4'); restoreState ('5'); setState ('5'); Ничего не выходит http://jsfiddle.net/qwertylist/zfsfbbLy/13/ |
robertbat,
вам необходим только индекс открытого блока - его и храните -- есть индекс открыть блок нет ничего не делать |
robertbat,
http://jsfiddle.net/zfsfbbLy/14/ |
Все получилось, еще раз огромное спасибо.
|
Только если закрыта не запоминает
|
Цитата:
|
Часовой пояс GMT +3, время: 10:55. |