Всем доброго времени суток.
Прощу помощи у тех, кто разбирается в JavaScript, т.к. сам я его очень плохо знаю. В общем ситуация такова, есть у меня сайт у него есть три основных категории: продажа, покупка, обмен. При наведении на них выпадет список подкатегорий. Само выпадение производит небольшой яваскрипт. Дело в том, что этот скрипт ранее был гораздо сложнее и он осуществлял красивое плавное выпадение (развертывание списка) и его плавное свёртывание. Со временем вид списка я изменил и эта "плавность" перестала быть нужной. Я, в меру своих возможностей и путём проб и ошибок всё таки смог удалить большую часть кода и тем самым уменьшив его вес и размер. Но, как мне кажется, имеющийся код можно ещё унифировать. Помогите и подскажите что ещё там необходимо лишнее удалить, но чтобы он выполнял функцию моментального отображения если курсор наведён на категорию или подкатегорию из выпавшего списка и моментального скрытия списка, в случае если курсор уведён? Короче всё также, как есть сейчас.
Код яваскрипта постараюсь выложить тут:
Код HTML на сайте:
Прощу помощи у тех, кто разбирается в 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> |
Фантики турбо - ностальгия по детству
53 рубля в день - на сайте с ТИЦ:10