Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   нужен совет по оптимизации кода выпадающего меню! (https://javascript.ru/forum/jquery/29174-nuzhen-sovet-po-optimizacii-koda-vypadayushhego-menyu.html)

Arkinsstoun 18.06.2012 15:02

нужен совет по оптимизации кода выпадающего меню!
 
есть код! ну я понимаю что очень медленно работает! та и несовсем правильно написано! помогите оптимизировать как написать так что бы было все по правилам! не обезательно упиратся на jquery можно много чистого js

var mainNavUlLi = $("#mainNav ul li");
        
	$(mainNavUlLi).hover(function(){
	$(this).children("ul").css({"display":"block"}).animate({"opacity":"1"}).children("li").animate({"height":"20px"});
	
      },
	function(){
	$(this).children("ul").animate({"opacity":"0"}).children("li").animate({"height":"0px"}).end().children("ul").css({"display":"none"});
	}
	);

Deff 18.06.2012 15:07

Arkinsstoun,
Ну имхо проще прописать всю анимацию в css
А переключателем менять только класс элемента
А в классах сss(ом) все свойства и аниме

Arkinsstoun 18.06.2012 15:09

Цитата:

Сообщение от Deff (Сообщение 182288)
Arkinsstoun,
Ну имхо проще прописать всю анимацию в css
А переключателем менять только класс элемента
А в классах сss(ом) все свойства и аниме

ну да можно и так но мне нужно кросбраузерно! ie 7 -8 не потдерживает анимацию сss3

melky 18.06.2012 15:11

Цитата:

Сообщение от Arkinsstoun (Сообщение 182289)
ну да можно и так но мне нужно кросбраузерно! ie 7 -8 не потдерживает анимацию сss3

для IE7-8 сделать анимацию на JS, с условной активацией (условные комментарии, либо ветвление в коде)


PS opacity fade для IE можно сделать на css :)

Arkinsstoun 18.06.2012 15:16

ну акей! а что насчет оптимизации....может все по функция разбить или побольше данных в переменные?

Deff 18.06.2012 15:33

Arkinsstoun,
Через скрипт - при hover/over - наткнетесь на проблему отмены предыдущих анимаций (посколь траблы при дбезге курсора на краю), правильное направление имхо в совете от melky,


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