Wakeboarder Forum Index

 
 FAQFAQ   SearchSearch   MemberlistMemberlist   StatisticsStats   FavoritesFavorites   RegisterRegister   ProfileProfile   Log in to check your private messagesLog in to check your private messages  Log inLog in 
BlogsBlogs   

Anyone Good at JavaScript?

 
Post new topic   Reply to topic    Wakeboarder Forum Index -> Technology, Photography, and Media
View previous topic :: View next topic  
Author Message
ontrider
Ladies Man
Ladies Man


Joined: 30 Jul 2003
Posts: 16491
City: Russia

PostPosted: Jan 23, 2005 12:57 pm    Post subject: Anyone Good at JavaScript? Reply with quote

Any Javascript programmers out there???

This is a top dropdown menu, but I want to add it to a side nav.
There is absolute positioning on the menu so it sits directly below the menu button it's applied to... I want to make it sit to the right of the menu button instead. Anyone know what I need to alter here to do this?


Quote:
<style type="text/css">

#dropmenudiv{
position:absolute;
border:1px solid black;
font:normal 12px Arial;
line-height:18px;
z-index:100;
}

</style>


<script type="text/javascript">

//Contents for menu 1
var menu1=new Array()
menu1[0]='<a href="#"><font color="#FFFFF">Item1</font></a><br>'
menu1[1]='<a href="#"><font color="#FFFFF">Item2</font></a><br>'
menu1[2]='<a href="#"><font color="#FFFFF">Item3</font></a><br>'

//Contents for menu 2, and so on
var menu2=new Array()
menu2[0]='<a href="#">Item1</a><br>'
menu2[1]='<a href="#">Item2</a><br>'
menu2[2]='<a href="#">Item3</a><br>'

var menuwidth='165px' //default menu width
var menubgcolor='#cc3333' //menu bgcolor
var disappeardelay=250 //menu disappear speed onMouseout (in miliseconds)
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=-500
if (menuwidth!=""){
dropmenuobj.widthobj=dropmenuobj.style
dropmenuobj.widthobj.width=menuwidth
}
if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover")
obj.visibility=visible
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 windowedge=ie4 && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure+obj.offsetHeight
}
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)
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

</script>
Back to top
View user's profile Send private message Blog
DC
Soul Rider
Soul Rider


Joined: 11 Mar 2003
Posts: 456

PostPosted: Jan 23, 2005 7:49 pm    Post subject: Reply with quote

Can you post the HTML code you have for the buttons?


Try changing this line from:
dropmenuobj.style.left=dropmenuobj.style.top=-500

-TO-
dropmenuobj.style.left=dropmenuobj.style.top=-100

_________________
DPC Films
Global WarNing - BluRay DVD
The Chick Flick - An ALL Female Wakeboard video
Back to top
View user's profile Send private message Visit poster's website
ontrider
Ladies Man
Ladies Man


Joined: 30 Jul 2003
Posts: 16491
City: Russia

PostPosted: Jan 23, 2005 9:22 pm    Post subject: Reply with quote

Tried that one, didn't really do anything.

I don't think the HTML has anything to do with it, the only relevant code in there is adding the "dropdownmenu" into the link which gets called onMouseOver. Here's the code though.

Quote:
<p><a href="#" onMouseOut="MM_swapImgRestore(), delayhidemenu()" onMouseOver="MM_swapImage('membership','','images/nav_membership_on.gif',1), dropdownmenu(this, event, menu1, '150px')" onClick="return clickreturnvalue()"><img name="membership" border="0" src="images/nav_membership_off.gif" width="117" height="22"></a></p>


I've actually been playing with the position offset functions (leftedge, rightedge... whatever) I've almost got the stupid thing where I want it so I think I'll give it another crack tomorrow, and should be able to fix it. Thanks.
Back to top
View user's profile Send private message Blog
Display posts from previous:   
Post new topic   Reply to topic    Wakeboarder Forum Index -> Technology, Photography, and Media All times are GMT - 8 Hours
Page 1 of 1

Add To Favorites

Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum
             


Copyright © 2012 - Wakeboarding - Wakeboarder.com - All Right Reserved
Powered by phpBB © 2001, 2005 phpBB Group