14.06.2012, 17:14
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от Alexanderos
|
А два раза не приходится кликать чтобы панель задвинуть вверх из нижнего положения?
|
Есть такое - а выложите ка Вашу клик функцию по кнопке, тут её нет в примере
|
|
14.06.2012, 17:18
|
Интересующийся
|
|
Регистрация: 27.09.2010
Сообщений: 29
|
|
Все что используется указано в коде чуть выше... там нет функций своих... использую конструкцию .toggle
Для работы с cookie использую вот этот готовый скрипт: http://test.kridom.ru/sites/all/them...uery.cookie.js
Для удобства приведу часть кода тут:
$('#btn-panel-slide').toggle(function () {
$("#panel .region-inner").animate({top:"0px"}, 500);
$('#btn-panel-slide').addClass("active");
$.cookie('cookie_panel_status', 'active', { expires: 7, path: '/' });
}, function() {
$("#panel .region-inner").animate({top:-($("#panel .region-inner").height() - 20) + "px"}, 500);
$('#btn-panel-slide').removeClass("active");
$.cookie('cookie_panel_status', '', { expires: 7, path: '/' });
});
UPD: пробовал обрабатывать событие .click но что-то там совсем запутался и не получилось ничего путного...
Последний раз редактировалось Alexanderos, 14.06.2012 в 17:21.
|
|
14.06.2012, 17:35
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Alexanderos,
Мну думает, что это из-за того -, что Вы элемент включаете, тестя куки не через toggle - каким макаром оно узнает что Вы его включали ? вот и получается клик двух разовый,
imxo проще тестить куки и сворачивать - разворачивать двумя функциями в зависимости от кука.. нафига там toggle ?
По клику на кнопку - анализируете кук, меняете кук и направляете на ту или иную функцию
|
|
14.06.2012, 17:47
|
Интересующийся
|
|
Регистрация: 27.09.2010
Сообщений: 29
|
|
Сообщение от Deff
|
Alexanderos,
... По клику на кнопку - анализируете кук, меняете кук и направляете на ту или иную функцию
|
Делал так изначально... хорошо, переделаю все обратно и попробую посмотреть что получится...
Я верно мыслю?
$("#btn-panel-slide").click (function () {
ЕСЛИ в куках есть 'ACTIVE' - задвинуть панель
ИНАЧЕ выдвинуть панель
});
|
|
14.06.2012, 18:08
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Alexanderos,
Секунду - а если при активной куке... просто добавлять параллельно и программный клик ?
Последний раз редактировалось Deff, 14.06.2012 в 18:13.
|
|
14.06.2012, 18:12
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
$(document).ready(function(){
if (($.cookie('cookie_panel_status')) == 'active') {
$("#panel .region-inner").animate({top:"0px"}, 1);
*!*
$('#btn-panel-slide').click();
*/!*
}
else {
$("#panel .region-inner").animate({top:-($("#panel .region-inner").height() - 20) + "px"}, 1);
}
$('#btn-panel-slide').toggle(function () {
$("#panel .region-inner").animate({top:"0px"}, 500);
$('#btn-panel-slide').addClass("active");
$.cookie('cookie_panel_status', 'active', { expires: 7, path: '/' });
}, function() {
$("#panel .region-inner").animate({top:-($("#panel .region-inner").height() - 20) + "px"}, 500);
$('#btn-panel-slide').removeClass("active");
$.cookie('cookie_panel_status', '', { expires: 7, path: '/' });
});
});
Последний раз редактировалось Deff, 14.06.2012 в 18:39.
|
|
14.06.2012, 18:44
|
Интересующийся
|
|
Регистрация: 27.09.2010
Сообщений: 29
|
|
Добавил строку - изменений не наблюдаю.
|
|
14.06.2012, 19:49
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Alexanderos,
Нун вот так:
$(document).ready(function(){
var panelHeight = $("#panel .region-inner").height();
var panelTop = panelHeight - 20;
if (($.cookie('cookie_panel_status')) == 'active') {
*!*
$("#panel .region-inner").animate({top: 0 + "px"}, 1, "linear", function(){
$('#btn-panel-slide').click()
});
*/!*
}
else {
$("#panel .region-inner").animate({top: "-" + panelTop + "px"}, 1);
}
$('#btn-panel-slide').toggle(function () {
$('#btn-panel-slide').addClass("active");
$.cookie('cookie_panel_status', 'active', { expires: 7, path: '/' });
$("#panel .region-inner").animate({top: 0 + "px"}, 500);
}, function() {
$("#panel .region-inner").animate({top: "-" + panelTop + "px"}, 500);
$('#btn-panel-slide').removeClass("active");
$.cookie('cookie_panel_status', '', { expires: 7, path: '/' });
});
});
Последний раз редактировалось Deff, 14.06.2012 в 20:14.
|
|
14.06.2012, 20:23
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Или даже так - покрасивше
$(document).ready(function(){
var AnimateTime=500;
var panelHeight = $("#panel .region-inner").height();
var panelTop = panelHeight - 20;
$('#btn-panel-slide').toggle(function () {
$('#btn-panel-slide').addClass("active");
$.cookie('cookie_panel_status', 'active', { expires: 7, path: '/' });
$("#panel .region-inner").animate({top: 0 + "px"}, AnimateTime);
}, function() {
$("#panel .region-inner").animate({top: "-" + panelTop + "px"}, AnimateTime);
$('#btn-panel-slide').removeClass("active");
$.cookie('cookie_panel_status', '', { expires: 7, path: '/' });
});
if (($.cookie('cookie_panel_status')) == 'active') {
AnimateTime=1;
$('#btn-panel-slide').addClass("active");
$('#btn-panel-slide').click();
AnimateTime=500;
}
else {
$("#panel .region-inner").animate({top: "-" + panelTop + "px"}, 1);
}
});
|
|
18.06.2012, 16:14
|
Интересующийся
|
|
Регистрация: 27.09.2010
Сообщений: 29
|
|
Deff, спасибо, все работает вроде как надо!
|
|
|
|