Не знаю, точно ли мой вопрос относится к теме программирования, но хочу попросить помощи в небольшом редактировании одного JavaScript'a. Надеюсь, тем кто разбирается это не составит труда:
Скачал скрипт для создания меню на сайте. Скрипт встраивается прямо в код страницы, т.е. никаких файлов, кроме html-страницы в архиве не было. Вот собственно и он: http://alpha-racing.ucoz.ru/069.html
Полностью код всей страницы:
Код HTML:
<html>
<head>
<title>WOscripts.com - JavaScript - Pop-it menu</title>
<META http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\">
<META NAME=\"description\" CONTENT=\"Коллекции CGI, PHP, JavaScript скриптов, Java апплеты, огромное количество документации по разным языкам программирования, анимированные гифы, фоны, полезные программы, форум, ссылки по теме.\">
<META NAME=\"keywords\" CONTENT=\"perl scripts, perl, cgi scripts, cgi, перл, java, java scripts, веб-программирование, web-programming, html, каталог ссылок, документация по веб-программированию, cgi скрипты, java скрипты, игры, java апплеты, апплеты, гифы, скрипты, скрипт, книги по веб-программированию, форум по perl, CGI, Perl, script, HTML\">
<Style>
A:Link{ Color: white; Text-decoration: underline}
A:Hover{ Color: white; Text-decoration: none}
td, body {font-family: verdana, arial, helvetica; font-size:11px;}
</Style>
<!-- HEAD START HERE -->
<style>
<!--
.menuskin{
position:absolute;
width:165px;
background-color:menu;
border:0px solid black;
font:normal 12px Verdana;
line-height:14px;
z-index:100;
visibility:hidden;
}
.menuskin a{
text-decoration:none;
color:black;
padding-left:10px;
padding-right:10px;
}
#mouseoverstyle{
background-color:#cc0000;
}
#mouseoverstyle a{
color:white;
}
-->
</style>
<script language=\"JavaScript1.2\">
//Pop-it menu- By WOscripts.com
//For full source code and more DHTML scripts, visit http://www.woscripts.com
//This credit MUST stay intact for use
var linkset=new Array()
//SPECIFY MENU SETS AND THEIR LINKS. FOLLOW SYNTAX LAID OUT
linkset[0]='<div class=\"menuitems\"><a href=\"http://www.woscripts.com\">WOscripts.com</a></div>'
linkset[0]+='<div class=\"menuitems\"><a href=\"http://forum.woscripts.com\"><b><font size=\"1\">FORUM</font></b></a></div>'
linkset[0]+='<div class=\"menuitems\"><a href=\"http://www.woteam.net\">WEB-DESIGN</a></div>'
linkset[1]='<div class=\"menuitems\"><a href=\"http://msnbc.com\">MSNBC</a></div>'
linkset[1]+='<div class=\"menuitems\"><a href=\"http://cnn.com\">CNN</a></div>'
linkset[1]+='<div class=\"menuitems\"><a href=\"http://abcnews.com\">ABC News</a></div>'
linkset[1]+='<div class=\"menuitems\"><a href=\"http://www.washingtonpost.com\">Washington Post</a></div>'
////No need to edit beyond here
var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1
var ns6=document.getElementById&&!document.all
var ns4=document.layers
function showmenu(e,which){
if (!document.all&&!document.getElementById&&!document.layers)
return
clearhidemenu()
menuobj=ie4? document.all.popmenu : ns6? document.getElementById("popmenu") : ns4? document.popmenu : ""
menuobj.thestyle=(ie4||ns6)? menuobj.style : menuobj
if (ie4||ns6)
menuobj.innerHTML=which
else{
menuobj.document.write('<layer name=gui bgColor=#E6E6E6 width=165 onmouseover=\"clearhidemenu()\" onmouseout=\"hidemenu()\">'+which+'</layer>')
menuobj.document.close()
}
menuobj.contentwidth=(ie4||ns6)? menuobj.offsetWidth : menuobj.document.gui.document.width
menuobj.contentheight=(ie4||ns6)? menuobj.offsetHeight : menuobj.document.gui.document.height
eventX=ie4? event.clientX : ns6? e.clientX : e.x
eventY=ie4? event.clientY : ns6? e.clientY : e.y
//Find out how close the mouse is to the corner of the window
var rightedge=ie4? document.body.clientWidth-eventX : window.innerWidth-eventX
var bottomedge=ie4? document.body.clientHeight-eventY : window.innerHeight-eventY
//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge
//move the horizontal position of the menu to the left by it's width
menuobj.thestyle.left=ie4? document.body.scrollLeft+eventX-menuobj.contentwidth : ns6? window.pageXOffset+eventX-menuobj.contentwidth : eventX-menuobj.contentwidth
else
//position the horizontal position of the menu where the mouse was clicked
menuobj.thestyle.left=ie4? document.body.scrollLeft+eventX : ns6? window.pageXOffset+eventX : eventX
//same concept with the vertical position
if (bottomedge<menuobj.contentheight)
menuobj.thestyle.top=ie4? document.body.scrollTop+eventY-menuobj.contentheight : ns6? window.pageYOffset+eventY-menuobj.contentheight : eventY-menuobj.contentheight
else
menuobj.thestyle.top=ie4? document.body.scrollTop+event.clientY : ns6? window.pageYOffset+eventY : eventY
menuobj.thestyle.visibility=\"visible\"
return false
}
function contains_ns6(a, b) {
//Determines if 1 element in contained in another- by Brainjar.com
while (b.parentNode)
if ((b = b.parentNode) == a)
return true;
return false;
}
function hidemenu(){
if (window.menuobj)
menuobj.thestyle.visibility=(ie4||ns6)? \"hidden\" : \"hide\"
}
function dynamichide(e){
if (ie4&&!menuobj.contains(e.toElement))
hidemenu()
else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
hidemenu()
}
function delayhidemenu(){
if (ie4||ns6||ns4)
delayhide=setTimeout(\"hidemenu()\",500)
}
function clearhidemenu(){
if (window.delayhide)
clearTimeout(delayhide)
}
function highlightmenu(e,state){
if (document.all)
source_el=event.srcElement
else if (document.getElementById)
source_el=e.target
if (source_el.className==\"menuitems\"){
source_el.id=(state==\"on\")? \"mouseoverstyle\" : \"\"
}
else{
while(source_el.id!=\"popmenu\"){
source_el=document.getElementById? source_el.parentNode : source_el.parentElement
if (source_el.className==\"menuitems\"){
source_el.id=(state==\"on\")? \"mouseoverstyle\" : \"\"
}
}
}
}
if (ie4||ns6)
document.onclick=hidemenu
</script>
<!-- HEAD END HERE -->
</head>
<body bgcolor=\"#737994\" text=\"#FFFFFF\" link=\"#FFFFFF\" vlink=\"#FFFFFF\" >
<!-- BODY START HERE -->
<div id=\"popmenu\" class=\"menuskin\" onMouseover=\"clearhidemenu();highlightmenu(event,'on')\" onMouseout=\"highlightmenu(event,'off');dynamichide(event)\">
</div>
<a href=\"#\" onMouseover=\"showmenu(event,linkset[0])\" onMouseout=\"delayhidemenu()\">Webmaster Links</a>
<a href=\"#\" onMouseover=\"showmenu(event,linkset[1])\" onMouseout=\"delayhidemenu()\">News sites</a>
<!-- BODY END HERE -->
</body>
</html>
А проблема в том, чтобы выпадающее меню появлялось не ниже и правее мыши, а выше и правее, т.е. в месте касания мышью ссылки был не верхний левый угол этого выпадающего меню, а нижний левый. Это наверное требует изменения всего пары каких-то значений, но для меня это слишком сложно. Заранее спасибо за помощь!
|