This is a tricky one! Anyone using milonic?

  • DanThMan
  • Newbie
  • Newbie
  • DanThMan
  • Posts: 6
  • Loc: Goodridge,Smallcountry,Sweden

Post 3+ Months Ago

I want the link fader script to work both in the menu and for the rest of
my site. When I call it just for the rest of my site the links in my menu
stops working. I'll get a "_gm" is null or not an object when using the menu. I have no coding experience worth mentioning and it feels like I'm stuck right now I am using the milonic menu. I do think it's a conflict with either mmenudom.js or
mmenuns4.js. I have not yet tried to implement it in the menu. Is it even possible? The fader script is well known, but I'll send it along and hope that someone has the skill and the time to look it over! Or maybe there's
an easier way to accomplish this effect in the menu?
Because it blocks the whole menu and makes it useless I will not load the script before I know it works like it's supposed to. However, the script makes a smooth, stunning effect that I really want to have. I've been at this for a couple of days now, trying everything I can think of! But it just won't work together with mmenudom.js. I use frames, so I use the
"body onload" which is known to cause conflicts with several scripts. I've
always been able to workaround this before, but not this time Also,
I have no clue how to embed it in the milonic menu ( if it's possible). My site is in swedish and I constantly change it for testing purposes, as I play
with different layouts to find new solutions ( someday maybe I'll even make it validate )

If this post seems alittle bit odd it's because I've posted it in the milonic forum and copied and pasted it so it should make some sense in other forums. The milonic menu is fairly spread around the world and someone here would know what I'm trying to achieve. Help me please I'm grasping at straws!
* Script name: Link fader (
* Version: 1.0
* Date: 12.05.02
* Usage: Freeware - You may modify this script as you wish,
* as long as you don't remove or edit this header comment.
* Script by: Fayez Zaheer (viol8r on #webdesign [])
* Email: fayez at
* Web site:
* Original idea:


// This script will no longer overwrite your current onmouseover and
// onmouseout attributes - it will instead skip those links. If you would
// still like to fade them, add findLink( to your onmouseover
// and clearFade() to your onmouseout, like so -
// <a href="#" onmouseover="findLink(; yourFunction()"
// onmouseout="clearFade(); yourSecondFunction()">
// Make sure to put it BEFORE any "return" statements otherwise
// the fade will not execute.

// Fade-to colour without the # (6 character value only!)
var fadeTo = "ffaa22";

// Fade in colour increment/decrement by
var fiBy = 6;

// Fade out colour increment/decrement by
var foBy = 10;

// Speed - milliseconds between each colour change in the fade
// Less than 10ms doesn't really make all that much difference, so
// 10 is the minimum effective value.
var speed = 10;

// Class name of links to NOT fade (i.e. ignore)
// var ignoreClass = "somebogusvalue" if you don't want to
// use this feature. Alternatively, add onmouseover="clearFade()"
// to the link you do not wish to fade.
var ignoreClass = "ignore";

// No more changes required (unless you know what you are doing)
// Enjoy... and email me and let me know what site(s) you are using it on
var opera, ie, dom, x = 0, oc, fader, ocs = new Array();

if (navigator.userAgent.indexOf("Opera") != -1) opera = true
else if (document.all && !opera) ie = true
else if (!document.all && document.getElementById) dom = true;

function convertRGB(z)
var newfcS = "", splitter = "";
splitter = z.split(",");
splitter[0] = parseInt(splitter[0].substring(4, splitter[0].length));
splitter[1] = parseInt(splitter[1]);
splitter[2] = parseInt(splitter[2].substring(0, splitter[2].length-1));
for (var q = 0; q < 3; q++)
splitter[q] = splitter[q].toString(16);
if (splitter[q].length == 1) splitter[q] = "0" + splitter[q];
newfcS += splitter[q];
return newfcS;

function currentColour(index)
var temp, cc;
if (opera) cc = document.links[index].style.color
else if (ie) cc = document.links[index].currentStyle.color
else if (dom) cc = document.defaultView.getComputedStyle(document.links[index], '').getPropertyValue("color");
if (cc.length == 4 && cc.substring(0, 1) == "#")
temp = "";
for (var a = 0; a < 3; a++)
temp += cc.substring(a+1, a+2) + cc.substring(a+1, a+2);
cc = temp;
else if (cc.indexOf("rgb") != -1) cc = convertRGB(cc)
else if (cc.length == 7) cc = cc.substring(1, 7)
else cc = fadeTo;
return cc;

function convert2Dec(hex)
var rgb = new Array();
for (var u = 0; u < 3; u++)
rgb[u] = parseInt(hex.substring(u*2, u*2+2), 16);
return rgb;

function newRGB(f, n, d)
var change;
if (d == 1) change = fiBy
else change = foBy;
for (var g = 0; g < 3; g++)
if (n[g] > f[g] && n[g] - change >= 0) n[g] -= change;
if (n[g] < f[g] && n[g] + change <= 255) n[g] += change;
return n;

function fade(index, d)
var fc, nc, temp = new Array(), finished = false;
nc = convert2Dec(currentColour(index));
if (d == 1) fc = convert2Dec(fadeTo)
else fc = convert2Dec(ocs[x]);
temp = convert2Dec(currentColour(index));
nc = newRGB(fc, nc, d);
if ((nc[0] == temp[0]) && (nc[1] == temp[1]) && (nc[2] == temp[2]))
finished = true;
if (!finished) document.links[x].style.color = "rgb(" + nc[0] + "," + nc[1] + "," + nc[2] + ")"
else clearInterval(fader);

function findLink(over)
if (document.layers) return;
if (fader)
document.links[x].style.color = "#" + ocs[x];
if (over && ! = over;
x = 0;
while (!( == document.links[x].id) && (x < document.links.length))
if ( == document.links[x].id)
oc = currentColour(x);
fader = setInterval("fade(" + x + ", 1)", speed);

function clearFade()
if (document.layers) return;
if (fader) clearInterval(fader);
fader = setInterval("fade(" + x + ", 0)", speed);

function init()
for (var i = 0; i < document.links.length; i++)
ocs[i] = currentColour(i);
var currentOver = document.links[i].onmouseover;
var currentOut = document.links[i].onmouseout;
var ignoreIt = document.links[i].className == ignoreClass;
if (!ignoreIt) document.links[i].id = "link" + i;
if (!currentOver && !currentOut && !ignoreIt)
document.links[i].onmouseover = findLink;
document.links[i].onmouseout = clearFade;

if (opera || ie || dom) window.onload = init;
  • DanThMan
  • Newbie
  • Newbie
  • DanThMan
  • Posts: 6
  • Loc: Goodridge,Smallcountry,Sweden

Post 3+ Months Ago

If it might interest anyone I've got an answer in another forum!
"Far as I know, I dont think you can do it with the menu as it is in its current implementation. Right now when you add an onFunction to a menu item I believe it places it in the onMouseOver event of the TD cell which comprises the menu item, NOT the <a> tag in it. Your fader script looks like it depends on the findLink method being placed in the onMouseOver event of the <a>, and not the <td>. So I doubt you could get it to work INSIDE of the menu.
Now you say it causes problems on the rest of the site. This is becase this script seems to automatically reassign all the IDs of ALL links in a webpage. And then tries to assign mouseover and mouseout events to them...this probably screws with the menu's links because I know the menu specifically assigns its own unique IDs to <A> tags.. Looking at the docs the only thing I can think of is see if we can get Andy to assign a dummy class name to all the links and then you could set the ignoreClass variable in the script to that so it ignores the links in the menu.
But personally, you're loading up your page with alittle too much javascript (and java applets). I am on a T1 connection and the page was painfully slow to load. But thats just my humble opinion.
Dave Hergert
Web Application Developer "

This tells me that I can forget about the fader script, because what I wanted is not possible.
Now I can go on with my life....
Thanx to you all who did spend time on this
  • b_heyer
  • Web Master
  • Web Master
  • User avatar
  • Posts: 4580
  • Loc: Maryland

Post 3+ Months Ago

Thanks for keeping us up to date :)

Post Information

  • Total Posts in this topic: 3 posts
  • Users browsing this forum: No registered users and 53 guests
  • 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 post attachments in this forum

© 1998-2017. Ozzu® is a registered trademark of Unmelted, LLC.