Okay, I admit now I am a bit confused. I gave a link to the "AnyLink Vertical Menu" and you can see the below script is similar and matches.
However, you link to "AnyLink JS Drop Down Menu v2.3" and in fact, my script runs more like this.
IIRC now, my script is in fact "AnyLink JS Drop Down Menu" BUT it is the pre v2.3 version.
Either way, here is the actual js script below with the array of drop down items edited for brevity.
The script works great until you shrink the window smaller than the length of the drop down as then you can see, it shifts up and covers the anchor link plus it never ever is off to the right and never moves off to the right if needed. In testing the link you link to, it works like that and even that script does not shift to the right and in fact, covers it's anchor link if the browser window is set to small. So the script you link to is similarly flawed in that respect as you cant even keep access to the Get The News anchor link once you resize the browser small enough to not allow the menu to fully expands, it stays dropping down vertically BUT it moves the whole menu up and covers the anchor link blocking your access to click it.. eek
Code:
/***********************************************
* Visit http://www.dynamicdrive.com/ for full source code
*http://www.dynamicdrive.com/dynamicindex1/anylinkvertical.htm
***********************************************/
//July 14th, 08": Custom mod. Adds fade in/out effect using jQuery 1.2.x which is also called as a script in the page
var fadespeed=500 //fade speed in milliseconds 300 was default
//Contents for menu 1
var menu1=new Array()
menu1[0]='<a href="#" class="menuevent">FULL EVENTS PAGE ►</a>'
menu1[1]='<a href="#">Texas 12/3</a>'
menu1[2]='<a href="#">Socal 1/28</a>'
menu1[3]='<a href="#">Arizona 2/11</a>'
menu1[4]='<a href="#">Florida 2/25</a>'
menu1[5]='<a href="#">Georgia 3/10</a>'
menu1[6]='<a href="#">Carolinas 3/24 & 25</a>'
menu1[7]='<a href="#">Colorado 5/5 & 6</a>'
var menuwidth='195px' //150 default menu width UNLESS a size is specified in the actual link of the href of the drop down
var menubgcolor='' //menu bgcolor which will be overidden by the background-image in the css under #dropmenudiv OR leave empty to make sure png is used
var disappeardelay=300 //menu disappear speed onMouseout (in miliseconds) 250 was default
var hidemenu_onclick="yes" //hide menu when user clicks within menu?
var ie4=document.all
var ns6=document.getElementById&&!document.all
if (ie4||ns6)
document.write('<div id="dropmenudiv" style="visibility:hidden;width:'+menuwidth+';background-color:'+menubgcolor+'" onMouseover="clearhidemenu()" onMouseout="dynamichide(event)"></div>')
function getposOffset(what, offsettype){
var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
var parentEl=what.offsetParent;
while (parentEl!=null){
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;
}
return totaloffset;
}
function showhide(obj, e, visible, hidden, menuwidth){
if (ie4||ns6)
dropmenuobj.style.left=dropmenuobj.style.top="-500px"
if (menuwidth!=""){
dropmenuobj.widthobj=dropmenuobj.style
//dropmenuobj.widthobj.width="195px" removed since code in href IN page is removed also
}
if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover"){
obj.visibility=visible
jQuery(dropmenuobj).hide().fadeIn(fadespeed)
}
else if (e.type=="click")
obj.visibility=hidden
}
function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}
function clearbrowseredge(obj, whichedge){
var edgeoffset=0
if (whichedge=="rightedge"){
var windowedge=ie4 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure-obj.offsetWidth
}
else{
var topedge=ie4 && !window.opera? iecompattest().scrollTop : window.pageYOffset
var windowedge=ie4 && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure){ //move up?
edgeoffset=dropmenuobj.contentmeasure+obj.offsetHeight
if ((dropmenuobj.y-topedge)<dropmenuobj.contentmeasure) //up no good either?
edgeoffset=dropmenuobj.y+obj.offsetHeight-topedge
}
}
return edgeoffset
}
function populatemenu(what){
if (ie4||ns6)
dropmenuobj.innerHTML=what.join("")
}
function dropdownmenu(obj, e, menucontents, menuwidth){
if (window.event) event.cancelBubble=true
else if (e.stopPropagation) e.stopPropagation()
clearhidemenu()
dropmenuobj=document.getElementById? document.getElementById("dropmenudiv") : dropmenudiv
populatemenu(menucontents)
if (ie4||ns6){
showhide(dropmenuobj.style, e, "visible", "hidden", menuwidth)
dropmenuobj.x=getposOffset(obj, "left")
dropmenuobj.y=getposOffset(obj, "top")
dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+"px"
dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+"px"
}
return clickreturnvalue()
}
function clickreturnvalue(){
if (ie4||ns6) return false
else return true
}
function contains_ns6(a, b) {
while (b.parentNode)
if ((b = b.parentNode) == a)
return true;
return false;
}
function dynamichide(e){
if (ie4&&!dropmenuobj.contains(e.toElement))
delayhidemenu()
else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
delayhidemenu()
}
function hidemenu(e){
if (typeof dropmenuobj!="undefined"){
if (ie4||ns6){
jQuery(dropmenuobj).fadeOut(fadespeed)
//dropmenuobj.style.visibility="hidden"
}
}
}
function delayhidemenu(){
if (ie4||ns6)
delayhide=setTimeout("hidemenu()",disappeardelay)
}
function clearhidemenu(){
if (typeof delayhide!="undefined")
clearTimeout(delayhide)
}
if (hidemenu_onclick=="yes")
document.onclick=hidemenu
Bookmarks