Modification on CSSMenu.js
Posted: Wed Apr 11, 2007 12:31 pm
Q:
The default installation also shows the problem:
Section headers now... open the site in IE6... When you hover over the section header, things start to shift up!
A:
The problem lies in the javascript. And I think the solution should be included in the core also!
CODE
var cssid = "primary-nav"; // CSS ID for the menuwrapper
var menuadd = "h"; // Character to be added to the specific classes upon hovering. So for example, if this is set to "h", class "menuparent" will become "menuparenth" when hovered over.
var menuh = "menuh"; // Classname for hovering over all other menu items
if (window.attachEvent) window.attachEvent("onload", cssHover);
function cssHover() {
var sfEls = document.getElementById(cssid).getElementsByTagName("LI");
for (var i=0; i<sfEls.length; i++) {
if(sfEls.className.indexOf("sectionheader") == -1){
sfEls.onmouseover=function() {
if (this.className != "") {
this.className = this.className + menuadd;
}
else {
this.className = menuh;
}
}
sfEls.onmouseout=function() {
if (this.className == menuh) {
this.className = "";
}
else {
this.className = this.className.replace(new RegExp(menuadd + "$"), "");
}
}
}
}
}
The default installation also shows the problem:
Section headers now... open the site in IE6... When you hover over the section header, things start to shift up!
A:
The problem lies in the javascript. And I think the solution should be included in the core also!
CODE
var cssid = "primary-nav"; // CSS ID for the menuwrapper
var menuadd = "h"; // Character to be added to the specific classes upon hovering. So for example, if this is set to "h", class "menuparent" will become "menuparenth" when hovered over.
var menuh = "menuh"; // Classname for hovering over all other menu items
if (window.attachEvent) window.attachEvent("onload", cssHover);
function cssHover() {
var sfEls = document.getElementById(cssid).getElementsByTagName("LI");
for (var i=0; i<sfEls.length; i++) {
if(sfEls.className.indexOf("sectionheader") == -1){
sfEls.onmouseover=function() {
if (this.className != "") {
this.className = this.className + menuadd;
}
else {
this.className = menuh;
}
}
sfEls.onmouseout=function() {
if (this.className == menuh) {
this.className = "";
}
else {
this.className = this.className.replace(new RegExp(menuadd + "$"), "");
}
}
}
}
}