/    Sign up×
Community /Pin to ProfileBookmark

Hover color change!?

I’m make a simple drop down menu, I’ve been able to change the other font colors, but I can change the font color when you hove over it. It’s a blinding RED.

This is the Menu code

[code]
<style type=”text/css”>

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

#dropmenudiv a{
width: 100%;
display: block;
text-indent: 3px;
border-bottom: 1px solid black;
padding: 1px 0;
text-decoration: none;
font-weight: bold;
}

#dropmenudiv a:hover{ /*hover background color*/
background-color: #85A5D2;
}

</style>

<script type=”text/javascript”>

//Contents for menu 1
var menu1=new Array()
menu1[0]='<a href=” “>Digital Complex Studios</a>’
menu1[1]='<a href=” “>Teh-Ko Animated Studios</a>’
menu1[2]='<a href=” “>Previews</a>’
menu1[3]='<a href=”mailto:[email protected]”>Submit</a>’

var menuwidth=’165px’ //default menu width
var menubgcolor=’#3D435A’ //menu bgcolor
var disappeardelay=250 //menu disappear speed onMouseout (in miliseconds)
var hidemenu_onclick=”yes” //hide menu when user clicks within menu?

/////No further editting needed

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=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 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)
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>
[/code]

This is the Actual menu.

[code]
<a href=”default.htm” onClick=”return clickreturnvalue()” onMouseover=”dropdownmenu(this, event, menu1, ‘150px’)” onMouseout=”delayhidemenu()”>.:Studios:.</a>
[/code]

When you go to the drop down items, it’s blinding. I’d like to change the colors so it’s the TEXT isn’t red.

Also, I’d like to preload eveything, so you don’t have to wait for the flash, and rollover buttons to appear. I’d like them to be there as soon as you open. So it looks better…. can you help me with that too???

to post a comment
CSS

3 Comments(s)

Copy linkTweet thisAlerts:
@NeoskyauthorDec 18.2006 — Here's a screen shot if this makes it easier to understand!

http://www.freewebs.com/neo5k/font.JPG
Copy linkTweet thisAlerts:
@WebJoelDec 19.2006 — Do you have a URL to the site? I placed your code into my editor and all I get is a white/blank screen...

edit: opps, -I had something in the wrong place.

....................................................................

Something like this gets you started: In your STYLE, add something like: a:link {color:blue;}

a:visited {color:teal;}

a:hover {color:white;}

a:active: {color:white;}[/QUOTE]
and your HTML:
<body>

<a href="default.htm" onClick="return clickreturnvalue()" onMouseover="dropdownmenu(this, event, menu1, '150px')" onMouseout="delayhidemenu()" [B]style="color:blue;[/B]">.:Studios:.</a>

</body>[/QUOTE]

to keep the ".:Studios:." the blue color (else it is WHITE on-hover). For multiple drop-downs (I am sure you'll have more than just ".:Studios:.") that need to be "blue", create a [I]CLASS="this"[/I] and in your STYLE, add:.this {color:blue;}[/QUOTE] Basically, you need to tell the browser what colors of use, in the order "LVHA" (link / visited / hover / active). Just think "[B]L[/B]o[B]V[/B]e[B]HA[/B]te"
Copy linkTweet thisAlerts:
@NeoskyauthorDec 19.2006 — thanks for the try, didn't work though, or at least I don't know where to put it.... lol All it did was make it without a hover bg color.
×

Success!

Help @Neosky spread the word by sharing this article on Twitter...

Tweet This
Sign in
Forgot password?
Sign in with TwitchSign in with GithubCreate Account
about: ({
version: 0.1.9 BETA 5.21,
whats_new: community page,
up_next: more Davinci•003 tasks,
coming_soon: events calendar,
social: @webDeveloperHQ
});

legal: ({
terms: of use,
privacy: policy
});
changelog: (
version: 0.1.9,
notes: added community page

version: 0.1.8,
notes: added Davinci•003

version: 0.1.7,
notes: upvote answers to bounties

version: 0.1.6,
notes: article editor refresh
)...
recent_tips: (
tipper: @AriseFacilitySolutions09,
tipped: article
amount: 1000 SATS,

tipper: @Yussuf4331,
tipped: article
amount: 1000 SATS,

tipper: @darkwebsites540,
tipped: article
amount: 10 SATS,
)...