Вставь этот код где нить в одном месте, например в внутри тега <head>
<script type="text/javascript">
$(document).ready(function () {
$('.megamenu li').hover(
function () {
var maxLeft = $('.header').width() + $('.header')[0].offsetLeft,
el = $('.level', this).show();
if ( Math.max(0, el[0].offsetLeft - ( maxLeft - el[0].offsetWidth ) ) != 0 ) {
el.css("left", (maxLeft - el[0].offsetWidth) + "px");
}
//показать подменю
el.hide().slideDown(0);
},
function () {
//скрыть подменю
$('.level', this).slideUp(0);
}
);
});
</script>
И не нужно будет клонировать сотню раз его. |
дело все в том, что это скрипт находится в xsl шаблоне и в цикле, поэтому расклонировался для каждого пункта меню)
|
а еще я привязан к id меню
|
А вы не поможете ограничить вывод скрипта, на те пункты меню, в которых нет выпадающего списка? А то к ним применяется стиль для выпадающего меню, это видно в разделе Студентам
|
да я там еще кой чё пропустил у тя на сайте, в коде не то написал, надо вместо этого:
var maxLeft = $('.header').width() + $('.header')[0].offsetLeft,
написать так:
var maxLeft = $('.header').width(),
Я не обратил внимания на то что header стоит с релативной позицией.Цитата:
$(document).ready(function () {
$('.megamenu li').hover(
function () {
var maxLeft = $('.header').width(),
el = $('.level', this);
if ( el.find('a').length != 0 ) {
el.show();
if ( Math.max(0, el[0].offsetLeft - ( maxLeft - el[0].offsetWidth ) ) != 0 ) {
el.css("left", (maxLeft - el[0].offsetWidth) + "px");
}
//показать подменю
el.hide().slideDown(0);
}
},
function () {
//скрыть подменю
$('.level', this).slideUp(0);
}
);
});
|
Работает)))
|
а вы случаем не разбираетесь в xsl шаблонах?
|
Цитата:
|
у меня сайт на движке, который обязывает делать вывод через xsl(((
|
devote, у меня еще пару вопросов по скрипту:
$(document).ready(function () {
$('.megamenu li').hover(
function () {
var maxLeft = $('.header').width(),
el = $('.level', this);
if ( el.find('a').length != 0 ) {
el.show();
if ( Math.max(0, el[0].offsetLeft - ( maxLeft - el[0].offsetWidth ) ) != 0 ) {
el.css("left", (maxLeft - el[0].offsetWidth) + "px");
}
//показать подменю
el.hide().slideDown(0);
}
},
function () {
//скрыть подменю
$('.level', this).slideUp(0);
}
);
});
Ко всем элементам меню 3-его и 4-ого уровня меню(div level3 и div level4) применен олин стиль. Но у самого правого, к примеру в О КОЛЛЕДЖЕ это колледж сегодня, а в АБИТУРИЕНТАХ это колледж сегодня, когда выпадает список, то div level3 и div level4 которым в css задано быть рядом, просто отображаются друг под другом. Дело в скрипте или все же css нужно править? Хотя в css все нормуль, может у вас есть идеи? |
| Часовой пояс GMT +3, время: 06:38. |