Помогите откорректировать JavaScript выпадающего списка
Страницы: 1
Помогите откорректировать JavaScript выпадающего списка
Всем доброго времени суток.
Прощу помощи у тех, кто разбирается в JavaScript, т.к. сам я его очень плохо знаю. В общем ситуация такова, есть у меня сайт у него есть три основных категории: продажа, покупка, обмен. При наведении на них выпадет список подкатегорий. Само выпадение производит небольшой яваскрипт. Дело в том, что этот скрипт ранее был гораздо сложнее и он осуществлял красивое плавное выпадение (развертывание списка) и его плавное свёртывание. Со временем вид списка я изменил и эта "плавность" перестала быть нужной. Я, в меру своих возможностей и путём проб и ошибок всё таки смог удалить большую часть кода и тем самым уменьшив его вес и размер. Но, как мне кажется, имеющийся код можно ещё унифировать. Помогите и подскажите что ещё там необходимо лишнее удалить, но чтобы он выполнял функцию моментального отображения если курсор наведён на категорию или подкатегорию из выпавшего списка и моментального скрытия списка, в случае если курсор уведён? Короче всё также, как есть сейчас.
Код яваскрипта постараюсь выложить тут:
Код
function ddMenu(id,dir)
   {
   var head = document.getElementById(id + '-ddhead');
   var cont = document.getElementById(id + '-ddcont');
   clearInterval(cont.timer);
   if (dir == 1)
      {
      clearTimeout(head.timer);
      if (cont.maxh && cont.maxh <= cont.offsetHeight)
         {
         return;
         }
      else if (!cont.maxh)
         {
         cont.style.display = 'block';
         cont.style.height = 'auto';
         }
      cont.timer = setInterval("ddSlid('" + id + "-ddcont', 1)");
      }
   else
      {
      head.timer = setTimeout("ddColl('" + id + "-ddcont')");
      }
   }

function ddColl(id)
   {
   var cont = document.getElementById(id);cont.timer = setInterval("ddSlid('" + id + "', -1)");
   }

function ddHide(id)
   {
   var head = document.getElementById(id + '-ddhead');
   var cont = document.getElementById(id + '-ddcont');
   clearTimeout(head.timer);
   clearInterval(cont.timer);
   if (cont.offsetHeight < cont.maxh)
      {
      cont.timer = setInterval("ddSlid('" + id + "-ddcont', 1)");
      }
   }

function ddSlid(id,dir)
   {
   var cont = document.getElementById(id);
   var currheight = cont.offsetHeight;
   var dist;
   if (dir == 1)
      {
      dist = (cont.maxh - currheight);
      }
   else
      {
      dist = currheight;
      }

   if (dist <= 1)
      {
      dist = 1;
      }

   cont.style.height = currheight + (dist * dir) + 'px';
   }


Код HTML на сайте:
Код
<li class=""><div id="one-ddhead" OnMouseOver="ddMenu('one',1)" OnMouseOut="ddMenu('one',-1)"><a class="lev" href="/prodam/">Продажа</a></div>

<div class="ddconte" id="one-ddcont" OnMouseOver="ddHide('one')" OnMouseOut="ddMenu('one',-1)">

<div class="ddinner">

<ul>

<li><a href="/prodam/acer/">Acer • 216</a></li>

</ul>

</div>

</div>

</li>

<li class=""><div id="two-ddhead" OnMouseOver="ddMenu('two',1)" OnMouseOut="ddMenu('two',-1)"><a class="lev" href="/kuplu/">Покупка</a></div>

<div class="ddconte" id="two-ddcont" OnMouseOver="ddHide('two')" OnMouseOut="ddMenu('two',-1)">

<div class="ddinner">

<ul>

<li><a href="/kuplu/acer/">Acer • 4</a></li>

</ul>

</div>

</div>

</li>

<li class=""><div id="tree-ddhead" OnMouseOver="ddMenu('tree',1)" OnMouseOut="ddMenu('tree',-1)"><a class="lev" href="/obmen/">Обмен</a></div>

<div class="ddconte" id="tree-ddcont" OnMouseOver="ddHide('tree')" OnMouseOut="ddMenu('tree',-1)">

<div class="ddinner">

<ul>

<li><a href="/obmen/acer/">Acer • 1</a></li>

</ul>

</div>

</div>

</li>
Amount News - полезный модуль для DLE

Фантики турбо - ностальгия по детству

53 рубля в день - на сайте с ТИЦ:10
Помогите, если кто-то разбирается в скриптах...
в яве не шарю, но не вижу смысла код ещё ужимать, итак всего 1,5 кб
daden11, нет предела совершенству smile:)
Гамлет,
могу прислать выпадающее меню на css i html. Проще и понятней. Как работает можно посмотреть здесь prom-postavka.com
Знаки зодиака гороскоп человека по дате рождения
Страницы: 1
Похожие темы:
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)
Новые темыОбъявленияСвободное общение
20:33 Телега на ручнике: РКН включил замедление и логи админок покраснели 
18:06 SEO под нейро 
17:59 Гугл уходит из России: почему интернет тормозит и что делать 
17:48 Ютуб - все: РКН вырубил свет через DNS и НСДИ 
16:15 Webvork - международная товарная СРА сеть с сертифицированными офферами на Европу. 
13:46 Яндекс туда же: "Нейро" отжал 50% первого экрана. Органический трафик падает 
16:04 LGaming - экосистема и партнерская программа в gambling и betting вертикалях 
18:49 CRYPTO ЛИДЫ! Свежак! -Физы -Форекс -Крипта 
18:13 Portfel.cc - современный помощник в Ваших финансовых операциях. 
18:08 CryptoGraph — Анонимный обмен криптовалют без KYC и AML 
16:56 Сервис смс активаций и аренды мобильных номеров ALISMS 
16:09 Bardo — Бюро развития и координации цифровых операций. 
13:30 SiteAnalyzer SEO Tools - бесплатное браузерное расширение для Chrome & Firefox 
13:14 BestChange – обменивать электронную валюту можно быстро и выгодно 
20:42 Отвратительное поведение 
20:35 Туалетные секреты: Замурчательная тема 
20:06 Ставки на супер тренды в спорте 
18:16 [AI] Бот за $600к советовал есть сыр с крысами. Нью-Йорк его (наконец-то) снес 
18:15 Кулеры и БП станут золотыми? Медь по 13 штук, олово в космосе 
18:13 блокировка youtube 2026: ркн начинает «выдавливание». кто уже пробовал вк видео? 
18:11 SIM к IMEI и лимиты на карты: итоги первого чтения в Думе