#jquery #animation #toggle
#jquery #Анимация #переключение
Вопрос:
Я пытаюсь создать анимированное скользящее навигационное меню, в котором подменю выдвигается с помощью переключателя анимации для атрибута ‘left’.
Мне успешно удалось заставить атрибут left переключаться между начальной настройкой -360px, где div скрыт, и атрибутом 0, где он расширен, но когда атрибут left переключается на 0, он также добавляет display: none.
Я думаю, что должно быть довольно простое решение, но пока я не смог его найти
Вот страница, на которой это реализовано
И вот функция Jquery:
$(document).ready(function(){
$("#gallerytoggle").click(function(){
$("#travelling_info").animate({left:'toggle'},"slow");
});
})
Комментарии:
1. Можете ли вы также описать, почему вы не хотите использовать display: none; ?
2. Также дважды щелкните по стрелке. Это портит ваш макет. Я бы тоже подумал об исправлении этого.
3. Я не хочу отображать none, потому что функциональность, которую я хочу, заключается в том, чтобы div просто выдвигался, чтобы открыть подменю, а затем снова вставлялся при повторном нажатии, а не выдвигался и исчезал.
Ответ №1:
Вы могли бы сделать это вручную. Не уверен, что это оптимально, но это мой наивный способ сделать это:
var state = 1;
$(document).ready(function(){
$("#gallerytoggle").click(function(){
$("#travelling_info").animate({left: parseInt((state % 2 - 1) * (-360)) 'px'}, "slow");
state ;
});
});
Комментарии:
1. Когда я попробовал это, div переместился дальше влево и просто чередовался между этой третьей позицией и второй, а не между исходной и второй
2. исправлено с небольшим изменением в вашем коде, спасибо — 360 должно было быть 360