CPAN-Testers-WWW-Admin
view release on metacpan or search on metacpan
vhost/html/js/fixedmenu.js view on Meta::CPAN
//if handler is not already stored, assign it
for(var i = 0; i < element[listener + '_num']; i++)
if(element[listener + i] == handler)
return;
element[listener + element[listener + '_num']] = handler;
element[listener + '_num']++;
};
fixedMenu.supportsFixed = function()
{
var testDiv = document.createElement("div");
testDiv.id = "testingPositionFixed";
testDiv.style.position = "fixed";
testDiv.style.top = "0px";
testDiv.style.right = "0px";
document.body.appendChild(testDiv);
var offset = 1;
if (typeof testDiv.offsetTop == "number"
&& testDiv.offsetTop != null
&& testDiv.offsetTop != "undefined")
{
offset = parseInt(testDiv.offsetTop);
}
if (offset == 0)
{
return true;
}
return false;
};
fixedMenu.init = function()
{
if (fixedMenu.supportsFixed())
fixedMenu.menu.style.position = "fixed";
else
{
var ob =
document.layers
? fixedMenu.menu
: fixedMenu.menu.style;
fixedMenu.targetLeft = parseInt(ob.left);
fixedMenu.targetTop = parseInt(ob.top);
fixedMenu.targetRight = parseInt(ob.right);
fixedMenu.targetBottom = parseInt(ob.bottom);
if (document.layers)
{
menu.left = 0;
menu.top = 0;
}
fixedMenu.addEvent(window, 'onscroll', fixedMenu.moveMenu);
fixedMenu.floatMenu();
}
};
fixedMenu.addEvent(window, 'onload', fixedMenu.init);
/* additional code to show/hide popup */
function showMenu() { $(fixedMenuId).style.display = 'block'; initPosition(); }
function hideMenu() { $(fixedMenuId).style.display = 'none'; }
function initPosition() {
iebody = (document.compatMode=="CSS1Compat") ? document.documentElement : document.body;
var scroll_top = (isIE) ? iebody.scrollTop : 0;
var docwidth = (isIE) ? iebody.clientWidth : window.innerWidth;
var docheight = (isIE) ? iebody.clientHeight: window.innerHeight;
var objwidth = $(fixedMenuId).offsetWidth;
var objheight = $(fixedMenuId).offsetHeight;
//alert("scroll_top="+scroll_top+", objwidth="+objwidth+", docwidth="+docwidth+", half="+(docwidth/2 - objwidth/2));
fixedMenu.currentX = (docwidth/2 - objwidth/2);
fixedMenu.currentY = scroll_top + 260;
//alert("currentX="+fixedMenu.currentX+", currentY="+fixedMenu.currentY);
$(fixedMenuId).style.left = fixedMenu.currentX + "px";
$(fixedMenuId).style.top = fixedMenu.currentY + "px";
}
( run in 1.647 second using v1.01-cache-2.11-cpan-364913b4093 )