1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
var ua = YAHOO.env.ua , oAnim;
var onSubmenuBeforeShow = function (p_sType, p_sArgs) {
var oBody , oElement , oShadow , oUL;
if (this.parent) {
oElement = this.element;
oShadow = oElement.lastChild;
oShadow.style.height = "0px";
if (oAnim && oAnim.isAnimated()) {
oAnim.stop();
oAnim = null;
}
oBody = this.body;
if (this.parent &&
!(this.parent instanceof YAHOO.widget.MenuBarItem)) {
if (ua.gecko || ua.opera) {
oBody.style.width = oBody.clientWidth + "px";
}
if (ua.ie == 7) {
oElement.style.width = oElement.clientWidth + "px";
}
}
oBody.style.overflow = "hidden";
oUL = oBody.getElementsByTagName("ul")[0];
oUL.style.marginTop = ("-" + oUL.offsetHeight + "px");
}
}
var onTween = function(p_sType, p_aArgs, p_oShadow) {
if (this.cfg.getProperty("iframe")) {
this.syncIframe();
}
if (p_oShadow) {
p_oShadow.style.height = this.element.offsetHeight + "px";
}
}
var onAnimationComplete = function(p_sType, p_aArgs, p_oShadow) {
var oBody = this.body,
oUL = oBody.getElementsByTagName("ul")[0];
if (p_oShadow) {
p_oShadow.style.height = this.element.offsetHeight + "px";
}
oUL.style.marginTop = "";
oBody.style.overflow = "";
if (this.parent &&
!(this.parent instanceof YAHOO.widget.MenuBarItem)) {
if (ua.gecko || ua.opera) {
oBody.style.width = "";
}
if (ua.ie == 7) {
this.element.style.width = "";
}
}
}
var onSubmenuShow = function(p_sType, p_sArgs) {
var oElement , oShadow , oUL;
if (this.parent) {
oElement = this.element;
oShadow = oElement.lastChild;
oUL = this.body.getElementsByTagName("ul")[0];
oAnim = new YAHOO.util.Anim(oUL,
{ marginTop: { to: 0 } },
.5, YAHOO.util.Easing.easeOut);
oAnim.onStart.subscribe(function () {
oShadow.style.height = "100%";
});
oAnim.animate();
if (YAHOO.env.ua.ie) {
oShadow.style.height = oElement.offsetHeight + "px";
oAnim.onTween.subscribe(onTween, oShadow, this);
}
oAnim.onComplete.subscribe(onAnimationComplete, oShadow, this);
}
}
var oMenuBar = new YAHOO.widget.MenuBar("productsandservices", {
autosubmenudisplay: true,
hidedelay: 750,
lazyload: true });
oMenuBar.subscribe("beforeShow", onSubmenuBeforeShow);
oMenuBar.subscribe("show", onSubmenuShow);
oMenuBar.render(); |
Partager