Javascript-форум (https://javascript.ru/forum/)
-   Мобильный JavaScript (https://javascript.ru/forum/mobile/)
-   -   Работа с анимированным меню. Оптимизация кода (https://javascript.ru/forum/mobile/66625-rabota-s-animirovannym-menyu-optimizaciya-koda.html)

ke1evra 28.12.2016 10:32

Работа с анимированным меню. Оптимизация кода
 
Нет времени и желания изучать многокилобайтные неотформатированные скрипты сторонних людей.
Я пытаюсь сделать адаптивное меню для телефонов. Я видел решения с добавлением/удалением классов toggleClass, но тогда анимацию нужно делать через CSS. Я же хочу анимацию сделать через Velocity.
Вопрос - как это реализовать, чтоб было менее затратно в плане производительности.
На данный момент я вижу решение по типу
var flag=true; //флаг определять меню открыто или закрыто
function openMenu() {
	if(flag)
{$("#rotate").velocity({rotateZ: "+=90"},300); //кручу значок меню
 $("nav").velocity({marginLeft:0},300); //выезжает меню
 $(".menu").velocity({marginLeft:"60%"},300);//значок меню двигается вместе с меню
flag=false;
}
else
{       $("#rotate").velocity({rotateZ: "-=90"},300);
	$("nav").velocity({marginLeft:"-60%"},300);
	$(".menu").velocity({marginLeft:0},300);
flag=true;
}


Помимо производительности меня интересует еще один вопрос - мне нужно сделать подменю, если я задам нескольким пунктам класс submenu, то как скрипт будет понимать, какое submenu по клику нужно открыть в данный момент?

рони 28.12.2016 10:50

ke1evra,
а нельзя это всё перенести в css и тогда будет так
function openMenu() {
$(".selector").toggleClass("open")
}

ke1evra 28.12.2016 10:54

Цитата:

Сообщение от рони (Сообщение 439120)
ke1evra,
а нельзя это всё перенести в css и тогда будет так
function openMenu() {
$(".selector").toggleClass("open")
}

Я же говорю, хочу анимацию посредством velocity. И еще непонятно, как подменюшки открывать.


Часовой пояс GMT +3, время: 15:49.