Jump to content
  • 0

Выпадающее меню


Russel
 Share

Question

Пытаюсь написать скрипт, который бы позволял при наведении на определ?нный объект показывать на этом объекте меню. Делаю 2мя путями-через mouseover и через абсолютное позиционирование. Меню появляется, но пользоватся им нельзя, так как нижняя кромка меню ниже объекта, на котором оно открывается. Не подскажете как его зафиксировать. Или может вообще есть у когото пример готовых меню такого плана, то это моя перевая программа на javascrit-сложновато пока, но нужно?

<html>
<head>
<title> </title>
<script>
function getXY(obj)
{
var x=0, y=0;
while(obj)
{
x+=obj.offsetLeft;
y+=obj.offsetTop;
obj=obj.offsetParent;
}
return { x: x, y:y};
}
var menu;
function w()
//Для теста определяем параметры кликательной области
{
d = document.getElementById("block2");
topPos = d.offsetheight;
alert(document.getElementById("block2").offsetLeft);
}
function show()
{
var saved_ex=ex;
do
{
document.getElementById("q").style.top=80;
document.getElementById("q").style.left=saved_ex;
document.getElementById("q").style.display="block";
/*menu=getXY(document.getElementById("q"));*/
}
while(document.getElementById("q").onmouseover)
return 0;
}
function hide()
{
menu=getXY(document.getElementById("q"));
if(document.getElementById("block2").onmouseout && ex>menu.x && ey>menu.y)
{
document.getElementById("q").style.display="block";
}
else
{
document.getElementById("q").style.display="none";
}
return 0;
}

//Инициализация координат мыши
var ex=0, ey=0;
//Ищем мышь
function A(mEvent) {
ex=mEvent.clientX;
ey=mEvent.clientY;
//Для теста выводим е? положение
document.getElementById("vvv").innerHTML="x= "+ex+"; y= "+ey;
//Смотрим где координаты мыши и скрываем/показываем меню
}
</script>
<style type="text/css">
* {
margin:0;
padding:0;
}
html, body {
margin:0;
padding:0;
width:100%;
height:100%;
}
body {
font-family: Verdana, Arial, sans-serif;
font-size: 62.5%;
color: #000;
background: #fff;
}
#block2 {
position: absolute;
top: 60px; left: 0; width:100%; height: 40px;
border:1px #ccc solid;
}
#q{
border:1px #f00 solid;
display:none;
position: absolute;
left:50px;
background:#fcc;
padding:10px;
padding-left:25px;
/*text-indent:10px;*/
}
</style>
</head>
<body onMouseMove="java script:A(event);", onLoad="java script:hide();">
<h1 id="vvv" style="margin-left:300px;"> </h1>
<div id="q" style="z-index:2;">
<ul id="nav">
<li><a href="#">Synonym</a>
<ul>
<li><a href="#">Terms</a></li>
</ul>
</li>
<li><a href="#">Link reciever</a>
<ul>
<li><a href="#">Query</a></li>
<li><a href="#">Search Engine</a></li>
<li><a href="#">Engine Instance</a></li>
<li><a href="#">Static</a></li>
<li><a href="#">Link</a></li>
</ul>
</li>
<li><a href="#">Doc Reciever</a>
<ul>
<li><a href="#">Document Engine</a></li>
<li><a href="#">Engine Instance</a></li>
<li><a href="#">Static</a></li>
<li><a href="#">Domain</a></li>
<li><a href="#">Document</a></li>
<li><a href="#">Mail Account</a></li>
<li><a href="#">Mail</a></li>
<li><a href="#">Download Service</a></li>
</ul>
</li>
<li><a href="#">Task Manager</a>
<ul>
<li><a href="#">Engine Instance</a></li>
<li><a href="#">Task</a></li>
<li><a href="#">Task Template</a></li>
</ul>
</li>
<li><a href="#">Report</a>
<ul>
<li><a href="#">Report</a></li>
</ul>
</li>
</ul> </div>
<a href="#" onMouseOver="java script:show();", onMouseOut="java script:hide();"><div id="block2" style="z-index:3;"></div></a>
</body>
</html>

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

Guest
This topic is now closed to further replies.
 Share

  • Обсуждения

    • Актуальные контакты: Telegram: @Nikker_web E-Mail:   tarasevich.email@gmail.com Портфолио https://www.behance.net/d4d4186e Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ    
    • Актуальные контакты: Telegram: @Nikker_web E-Mail:   tarasevich.email@gmail.com   Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ   Портфолио https://www.behance.net/d4d4186e
    • Доброго всем времени суток. Прошу помощи. Научите принципу изменения футера. Движок Xenforo. Версия 2.2.10. Стиль дефолтный. Что именно нужно в итоге на фото примере. Мой шаблон app.footer less имеет следующее значение.  .p-footer { .xf-publicFooter(); a { .xf-publicFooterLink(); } } .p-footer-inner { .m-pageWidth(); .m-pageInset(); padding-top: @xf-paddingMedium; padding-bottom: @xf-paddingLarge; } .p-footer-row { .m-clearFix(); margin-bottom: -@xf-paddingLarge; } .p-footer-row-main { float: left; margin-bottom: @xf-paddingLarge; } .p-footer-row-opposite { float: right; margin-bottom: @xf-paddingLarge; } .p-footer-linkList { .m-listPlain(); .m-clearFix(); > li { float: left; margin-right: .5em; &:last-child { margin-right: 0; } a { padding: 2px 4px; border-radius: @xf-borderRadiusSmall; &:hover { text-decoration: none; background-color: fade(@xf-publicFooterLink--color, 10%); } } } } .p-footer-rssLink { > span { position: relative; top: -1px; display: inline-block; width: 1.44em; height: 1.44em; line-height: 1.44em; text-align: center; font-size: .8em; background-color: #4682B4; border-radius: 2px; } .fa-rss { color: white; } } .p-footer-copyright { margin-top: @xf-elementSpacer; text-align: center; font-size: @xf-fontSizeSmallest; } .p-footer-debug { margin-top: @xf-paddingLarge; text-align: right; font-size: @xf-fontSizeSmallest; .pairs > dt { color: inherit; } } @media (max-width: @xf-responsiveMedium) { .p-footer-row-main, .p-footer-row-opposite { float: none; } .p-footer-copyright { text-align: left; padding: 0 4px; // aligns with other links } }  
    • Нужны сайты с примерами верстки, типа https://css-tricks.com/. Типовые приемы и нестандартные на все случаи жизни. Накидайте ссылок.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy