Výsledky 1 až 3 z 3

Téma: Další problem s pop-up menu (úrovňovým) javascript

  1. #1

    Standardní Další problem s pop-up menu (úrovňovým) javascript

    OMLOUVÁM SE ČTENÁŘŮM OCGURU ZA NEPŘEHLEDNOST, JE TO SLÁTANINA Z JINÉHO FÓRA, JDE MI O TO UMÍSTĚNÍ PODMENU VIZ OBRÁZEK



    Další problem s pop-up menu (úrovňovým) v dreamweaveru

    o tom, že dreamweaver mx 2004 má sakra problém s kombinací pop-up menu v šabloně stránek, tady pomlčím, to je na fakt na pěst

    ale strašně moc bych potřeboval pomoci... udělal jsem rozšířené menu, ale každé podmenu (2., 3. sloupec přebírají vlastnosti prvního a v dreamweaveru to nejde pro každý zvlášť měnit)

    v kódu to ale vypadá slibněji... snažil jsem se ručně měnit některé parametry v podmenu, ale nic nebylo vidět... pak jsem si pohrál s těma hodnotama true false true false a vida - ve 3tím podmenu se mi objevil kolem sloupce s roletkama okraj... nevíte někdo, jak se dají ty hodnoty měnit tak, aby to fungovalo? Co znamenají ty true false?

    edit: už vím, true a false - aspoň ty první se vztahují k borderu a pozadí menu, pak je myslím třetí true/false pro rozlišení horizontál/vertikál menu, pak číslo, značící odsazení textu v buňce od levého kraje, ale pak další dvě hodnoty stejně nevím)

    (viz: ("Nebankovnísektor",116,16,"Verdana, Arial, Helvetica, sans-serif",10,"#999999","#ffffff","#221356","#ff0000", "left","middle",3,0,90,-5,7,true,false,true,0,false,true);



    window.mm_menu_1113145555_1_1_1 = new Menu("Flexiprodukty",116,16,"Verdana, Arial, Helvetica, sans-serif",10,"#999999","#ffffff","#221356","#ff0000", "left","middle",3,0,90,-5,7,true,false,true,0,false,true);
    mm_menu_1113145555_1_1_1.addMenuItem("Flexihotovos t","window.open('#', '_self');");
    mm_menu_1113145555_1_1_1.addMenuItem("Flexiauto"," window.open('#', '_self');");
    mm_menu_1113145555_1_1_1.addMenuItem("Flexihypoté ka","window.open('#', '_self');");
    mm_menu_1113145555_1_1_1.hideOnMouseOut=true;
    mm_menu_1113145555_1_1_1.bgColor='#555555';
    mm_menu_1113145555_1_1_1.menuBorder=1;
    mm_menu_1113145555_1_1_1.menuLiteBgColor='#FFFFFF' ;
    mm_menu_1113145555_1_1_1.menuBorderBgColor='#77777 7';
    window.mm_menu_1113145555_1_1 = new Menu("Nebankovnísektor",116,16,"Verdana, Arial, Helvetica, sans-serif",10,"#999999","#ffffff","#221356","#ff0000", "left","middle",3,0,90,-5,7,true,false,true,0,false,true); mm_menu_1113145555_1_1.addMenuItem(mm_menu_1113145555_1_1_1,"window.open ('../cz/finance_nebank.htm', '_self');");
    mm_menu_1113145555_1_1.addMenuItem("ČPProgram","w indow.open('#', '_self');");
    mm_menu_1113145555_1_1.hideOnMouseOut=true;
    mm_menu_1113145555_1_1.childMenuIcon="arrows.gif";
    mm_menu_1113145555_1_1.bgColor='#555555';
    mm_menu_1113145555_1_1.menuBorder=1;
    mm_menu_1113145555_1_1.menuLiteBgColor='#FFFFFF';
    mm_menu_1113145555_1_1.menuBorderBgColor='#777777' ;
    window.mm_menu_1113145555_1 = new Menu("root",116,16,"Verdana, Arial, Helvetica, sans-serif",10,"#999999","#ffffff","#221356","#ff0000", "left","middle",3,0,90,-5,7,true,false,true,0,false,true);
    mm_menu_1113145555_1.addMenuItem("Bankovnísektor","window.open('../cz/finance_bank.htm', '_self');");
    mm_menu_1113145555_1.addMenuItem(mm_menu_111314555 5_1_1,"window.open('../cz/finance_nebank.htm', '_self');");
    mm_menu_1113145555_1.addMenuItem("---","window.open('#', '_self');");
    mm_menu_1113145555_1.hideOnMouseOut=true;
    mm_menu_1113145555_1.childMenuIcon="arrows.gif";
    mm_menu_1113145555_1.bgColor='#555555';
    mm_menu_1113145555_1.menuBorder=1;
    mm_menu_1113145555_1.menuLiteBgColor='#FFFFFF';
    mm_menu_1113145555_1.menuBorderBgColor='#777777';


    no a hlavní věcí je, že nevím, kde se dá přenastavit defaultní pozicování, protože ta podmenu jsou strašně umístěná mám nastaveno rychlé ztracení menu po odjetí myši a v podstatě přejet rychle myší na podmenu (které je níž a je tam malá společná oblast) je fakt umění.

    (to červené jsou úrovně podmenu - další roletky z roletek)



    no ne, ono je to celkem prehledne > jak jsem zvyraznil to _1_1_1 , _1_1 , _1 - to jsou úrovně menu - vlastně roletka, pak roletka, která vyjíždí z položky v první roletce, pak třetí roletka, co vyjíždí z druhé roletky
    pak jsou parametry, kterým už jde z kódu rozumět - ale změna se nějak neprojevuje...


    nejvíce mě zajímá, co je to tučné, snad bych tam docílil toho, ať není vyjíždějící roletka posunuta níž na úroveň šipky - jestli tam není pozicování apod...

    window.mm_menu_1113145555_1_1_1 = new Menu("Flexiprodukty",116,16,"Verdana, Arial, Helvetica, sans-serif",10,"#999999","#ffffff","#221356","#ff0000", "left", "middle" ,3,0,90,-5,7,true,false,true,0,false,true);

    tak jediné, čeho jsem docílil, bylo posunutí šipky pro podmenu (nahoru nebo dolu) ale sakryš potřeboval bych posunout nahoru to vlastní podmenu, aby bylo vedle mateřského menu (je to vidět na obrázku výše).. prosím pomozte někdo, přece to nějak musí jít - jde o to, že mám nastaveno rychlé zmizení menu po odjetí myši (jelikož jsou záložky všude okolo sebe) a jelikož je podmenu v tak nízko, nedá se skoro do podmenu dostat, dřív se spíš kurzor dostane někam vedle a buď celé menu zmizí nebo se vybere další položka v mateřském menu


    tady je javascript z DW, který se o to stará


    řádek 374 hýbe se šipkou doleva/doprava childItem.style.pixelLeft = menu.menuItemWidth -11

    na řádku 376:
    childItem.style.pixelTop = (menu.menuItemHeight /2) -4;
    - pozice vrchního bodu gifu s šipkou je určena jako polovina výšky "buňky" - 4pixely (od vršku šipky k prostředku) - tak je docíleno vycentrování...

    no ale kde je umístění vlastního podmenu, netuším
    DECENT II EXTREME
    ---> http://7luke.com/decent <--- už je zase jiný konfig ale není čas to změnit na webu

  2. #2

    Standardní Re: Další problem s pop-up menu (úrovňovým) javascript

    tak zatím mi nezbývá, než to vyřešit hodně vysokými buňkami pop-up menu... pak se zvětší i společný prostor mezi menu a podmenu a už se to dá vybrat - hodím obrázek, ale stejně jsem nešťastný.... ta pozice někde být musí

    tady je ještě ten script vypsaný

    PHP kód:
    /**
     * mm_menu 20MAR2002 Version 6.0
     * Andy Finnell, March 2002
     * Copyright (c) 2000-2002 Macromedia, Inc.
     *
     * based on menu.js
     * by gary smith, July 1997
     * Copyright (c) 1997-1999 Netscape Communications Corp.
     *
     * Netscape grants you a royalty free license to use or modify this
     * software provided that this copyright notice appears on all copies.
     * This software is provided "AS IS," without a warranty of any kind.
     */
    function Menu(label, mw, mh, fnt, fs, fclr, fhclr, bg, bgh, halgn, valgn, pad, space, to, sx, sy, srel, opq, vert, idt, aw, ah) 
    {
        
    this.version = "020320 [Menu; mm_menu.js]";
        
    this.type = "Menu";
        
    this.menuWidth = mw;
        
    this.menuItemHeight = mh;
        
    this.fontSize = fs;
        
    this.fontWeight = "plain";
        
    this.fontFamily = fnt;
        
    this.fontColor = fclr;
        
    this.fontColorHilite = fhclr;
        
    this.bgColor = "#555555";
        
    this.menuBorder = 1;
        
    this.menuBgOpaque=opq;
        
    this.menuItemBorder = 1;
        
    this.menuItemIndent = idt;
        
    this.menuItemBgColor = bg;
        
    this.menuItemVAlign = valgn;
        
    this.menuItemHAlign = halgn;
        
    this.menuItemPadding = pad;
        
    this.menuItemSpacing = space;
        
    this.menuLiteBgColor = "#ffffff";
        
    this.menuBorderBgColor = "#777777";
        
    this.menuHiliteBgColor = bgh;
        
    this.menuContainerBgColor = "#cccccc";
        
    this.childMenuIcon = "arrows.gif";
        
    this.submenuXOffset = sx;
        
    this.submenuYOffset = sy;
        
    this.submenuRelativeToItem = srel;
        
    this.vertical = vert;
        
    this.items = new Array();
        
    this.actions = new Array();
        
    this.childMenus = new Array();
        
    this.hideOnMouseOut = true;
        
    this.hideTimeout = to;
        
    this.addMenuItem = addMenuItem;
        
    this.writeMenus = writeMenus;
        
    this.MM_showMenu = MM_showMenu;
        
    this.onMenuItemOver = onMenuItemOver;
        
    this.onMenuItemAction = onMenuItemAction;
        
    this.hideMenu = hideMenu;
        
    this.hideChildMenu = hideChildMenu;
        if (!
    window.menus) window.menus = new Array();
        
    this.label = " " + label;
        
    window.menus[this.label] = this;
        
    window.menus[window.menus.length] = this;
        if (!
    window.activeMenus) window.activeMenus = new Array();
    }

    function 
    addMenuItem(label, action) {
        
    this.items[this.items.length] = label;
        
    this.actions[this.actions.length] = action;
    }

    function 
    FIND(item) {
        if( 
    window.mmIsOpera ) return(document.getElementById(item));
        if (
    document.all) return(document.all[item]);
        if (
    document.getElementById) return(document.getElementById(item));
        return(
    false);
    }

    function 
    writeMenus(container) {
        if (
    window.triedToWriteMenus) return;
        var 
    agt = navigator.userAgent.toLowerCase();
        
    window.mmIsOpera = agt.indexOf("opera") != -1;
        if (!
    container && document.layers) {
            
    window.delayWriteMenus = this.writeMenus;
            var 
    timer = setTimeout('delayWriteMenus()', 500);
            
    container = new Layer(100);
            
    clearTimeout(timer);
        } else if (
    document.all || document.hasChildNodes || window.mmIsOpera) {
            
    document.writeln('<span id="menuContainer"></span>');
            
    container = FIND("menuContainer");
        }

        
    window.mmHideMenuTimer = null;
        if (!
    container) return;    
        
    window.triedToWriteMenus = true; 
        
    container.isContainer = true;
        
    container.menus = new Array();
        for (var 
    i=0; i<window.menus.length; i++) 
            
    container.menus[i] = window.menus[i];
        
    window.menus.length = 0;
        var 
    countMenus = 0;
        var 
    countItems = 0;
        var 
    top = 0;
        var 
    content = '';
        var 
    lrs = false;
        var 
    theStat = "";
        var 
    tsc = 0;
        if (
    document.layers) lrs = true;
        for (var 
    i=0; i<container.menus.length; i++, countMenus++) {
            var 
    menu = container.menus[i];
            if (
    menu.bgImageUp || !menu.menuBgOpaque) {
                
    menu.menuBorder = 0;
                
    menu.menuItemBorder = 0;
            }
            if (
    lrs) {
                var 
    menuLayer = new Layer(100, container);
                var 
    lite = new Layer(100, menuLayer);
                
    lite.top = menu.menuBorder;
                
    lite.left = menu.menuBorder;
                var 
    body = new Layer(100, lite);
                
    body.top = menu.menuBorder;
                
    body.left = menu.menuBorder;
            } else {
                
    content += ''+
                
    '<div id="menuLayer'+ countMenus +'" style="position:absolute;z-index:1;left:10px;top:'+ (i * 100) +'px;visibility:hidden;color:' +  menu.menuBorderBgColor + ';">\n'+
                
    '  <div id="menuLite'+ countMenus +'" style="position:absolute;z-index:1;left:'+ menu.menuBorder +'px;top:'+ menu.menuBorder +'px;visibility:hide;" onmouseout="mouseoutMenu();">\n'+
                
    '     <div id="menuFg'+ countMenus +'" style="position:absolute;left:'+ menu.menuBorder +'px;top:'+ menu.menuBorder +'px;visibility:hide;">\n'+
                
    '';
            }
            var 
    x=i;
            for (var 
    i=0; i<menu.items.length; i++) {
                var 
    item = menu.items[i];
                var 
    childMenu = false;
                var 
    defaultHeight = menu.fontSize+2*menu.menuItemPadding;
                if (
    item.label) {
                    
    item = item.label;
                    
    childMenu = true;
                }
                
    menu.menuItemHeight = menu.menuItemHeight || defaultHeight;
                var 
    itemProps = '';
                if( 
    menu.fontFamily != '' ) itemProps += 'font-family:' + menu.fontFamily +';';
                
    itemProps += 'font-weight:' + menu.fontWeight + ';fontSize:' + menu.fontSize + 'px;';
                if (
    menu.fontStyle) itemProps += 'font-style:' + menu.fontStyle + ';';
                if (
    document.all || window.mmIsOpera) 
                    
    itemProps += 'font-size:' + menu.fontSize + 'px;" onmouseover="onMenuItemOver(null,this);" onclick="onMenuItemAction(null,this);';
                else if (!
    document.layers) {
                    
    itemProps += 'font-size:' + menu.fontSize + 'px;';
                }
                var 
    l;
                if (
    lrs) {
                    var 
    lw = menu.menuWidth;
                    if( 
    menu.menuItemHAlign == 'right' ) lw -= menu.menuItemPadding;
                    
    l = new Layer(lw,body);
                }
                var 
    itemLeft = 0;
                var 
    itemTop = i*menu.menuItemHeight;
                if( !
    menu.vertical ) {
                    
    itemLeft = i*menu.menuWidth;
                    
    itemTop = 0;
                }
                var 
    dTag = '<div id="menuItem'+ countItems +'" style="position:absolute;left:' + itemLeft + 'px;top:'+ itemTop +'px;'+ itemProps +'">';
                var 
    dClose = '</div>'
                
    if (menu.bgImageUp) dTag = '<div id="menuItem'+ countItems +'" style="background:url('+menu.bgImageUp+');position:absolute;left:' + itemLeft + 'px;top:'+ itemTop +'px;'+ itemProps +'">';

                var 
    left = 0, top = 0, right = 0, bottom = 0;
                
    left = 1 + menu.menuItemPadding + menu.menuItemIndent;
                
    right = left + menu.menuWidth - 2*menu.menuItemPadding - menu.menuItemIndent;
                if( 
    menu.menuItemVAlign == 'top' ) top = menu.menuItemPadding;
                if( 
    menu.menuItemVAlign == 'bottom' ) top = menu.menuItemHeight-menu.fontSize-1-menu.menuItemPadding;
                if( 
    menu.menuItemVAlign == 'middle' ) top = ((menu.menuItemHeight/2)-(menu.fontSize/2)-1);
                
    bottom = menu.menuItemHeight - 2*menu.menuItemPadding;
                var 
    textProps = 'position:absolute;left:' + left + 'px;top:' + top + 'px;';
                if (
    lrs) {
                    
    textProps +=itemProps + 'right:' + right + ';bottom:' + bottom + ';';
                    
    dTag = "";
                    
    dClose = "";
                }
                
                if(
    document.all && !window.mmIsOpera) {
                    
    item = '<div align="' + menu.menuItemHAlign + '">' + item + '</div>';
                } else if (
    lrs) {
                    
    item = '<div style="text-align:' + menu.menuItemHAlign + ';">' + item + '</div>';
                } else {
                    var 
    hitem = null;
                    if( 
    menu.menuItemHAlign != 'left' ) {
                        if(
    window.mmIsOpera) {
                            var 
    operaWidth = menu.menuItemHAlign == 'center' ? -(menu.menuWidth-2*menu.menuItemPadding) : (menu.menuWidth-6*menu.menuItemPadding);
                            
    hitem = '<div id="menuItemHilite' + countItems + 'Shim" style="position:absolute;top:1px;left:' + menu.menuItemPadding + 'px;width:' + operaWidth + 'px;text-align:' 
                                
    + menu.menuItemHAlign + ';visibility:visible;">' + item + '</div>';
                            
    item = '<div id="menuItemText' + countItems + 'Shim" style="position:absolute;top:1px;left:' + menu.menuItemPadding + 'px;width:' + operaWidth + 'px;text-align:' 
                                
    + menu.menuItemHAlign + ';visibility:visible;">' + item + '</div>';
                        } else {
                            
    hitem = '<div id="menuItemHilite' + countItems + 'Shim" style="position:absolute;top:1px;left:1px;right:-' + (left+menu.menuWidth-3*menu.menuItemPadding) + 'px;text-align:' 
                                
    + menu.menuItemHAlign + ';visibility:visible;">' + item + '</div>';
                            
    item = '<div id="menuItemText' + countItems + 'Shim" style="position:absolute;top:1px;left:1px;right:-' + (left+menu.menuWidth-3*menu.menuItemPadding) + 'px;text-align:' 
                                
    + menu.menuItemHAlign + ';visibility:visible;">' + item + '</div>';
                        }
                    } else 
    hitem = null;
                }
                if(
    document.all && !window.mmIsOpera) item = '<div id="menuItemShim' + countItems + '" style="position:absolute;left:0px;top:0px;">' + item + '</div>';
                var 
    dText    = '<div id="menuItemText'+ countItems +'" style="' + textProps + 'color:'+ menu.fontColor +';">'+ item +'&nbsp</div>\n'
                            
    + '<div id="menuItemHilite'+ countItems +'" style="' + textProps + 'color:'+ menu.fontColorHilite +';visibility:hidden;">' 
                            
    + (hitem||item) +'&nbsp</div>';
                if (
    childMenu) content += ( dTag + dText + '<div id="childMenu'+ countItems +'" style="position:absolute;left:0px;top:3px;"><img src="'+ menu.childMenuIcon +'"></div>\n' + dClose);
                else 
    content += ( dTag + dText + dClose);
                if (
    lrs) {
                    
    l.document.open("text/html");
                    
    l.document.writeln(content);
                    
    l.document.close();    
                    
    content = '';
                    
    theStat += "-";
                    
    tsc++;
                    if (
    tsc > 50) {
                        
    tsc = 0;
                        
    theStat = "";
                    }
                    
    status = theStat;
                }
                
    countItems++;  
            }
            if (
    lrs) {
                var 
    focusItem = new Layer(100, body);
                
    focusItem.visiblity="hidden";
                
    focusItem.document.open("text/html");
                
    focusItem.document.writeln("&nbsp;");
                
    focusItem.document.close();    
            } else {
              
    content += '      <div id="focusItem'+ countMenus +'" style="position:absolute;left:0px;top:0px;visibility:hide;" onclick="onMenuItemAction(null,this);">&nbsp;</div>\n';
              
    content += '   </div>\n  </div>\n</div>\n';
            }
            
    i=x;
        }
        if (
    document.layers) {        
            
    container.clip.width = window.innerWidth;
            
    container.clip.height = window.innerHeight;
            
    container.onmouseout = mouseoutMenu;
            
    container.menuContainerBgColor = this.menuContainerBgColor;
            for (var 
    i=0; i<container.document.layers.length; i++) {
                
    proto = container.menus[i];
                var 
    menu = container.document.layers[i];
                
    container.menus[i].menuLayer = menu;
                
    container.menus[i].menuLayer.Menu = container.menus[i];
                
    container.menus[i].menuLayer.Menu.container = container;
                var 
    body = menu.document.layers[0].document.layers[0];
                
    body.clip.width = proto.menuWidth || body.clip.width;
                
    body.clip.height = proto.menuHeight || body.clip.height;
                for (var 
    n=0; n<body.document.layers.length-1; n++) {
                    var 
    l = body.document.layers[n];
                    
    l.Menu = container.menus[i];
                    
    l.menuHiliteBgColor = proto.menuHiliteBgColor;
                    
    l.document.bgColor = proto.menuItemBgColor;
                    
    l.saveColor = proto.menuItemBgColor;
                    
    l.onmouseover = proto.onMenuItemOver;
                    
    l.onclick = proto.onMenuItemAction;
                    
    l.mmaction = container.menus[i].actions[n];
                    
    l.focusItem = body.document.layers[body.document.layers.length-1];
                    
    l.clip.width = proto.menuWidth || body.clip.width;
                    
    l.clip.height = proto.menuItemHeight || l.clip.height;
                    if (
    n>0) {
                        if( 
    l.Menu.vertical ) l.top = body.document.layers[n-1].top + body.document.layers[n-1].clip.height + proto.menuItemBorder + proto.menuItemSpacing;
                        else 
    l.left = body.document.layers[n-1].left + body.document.layers[n-1].clip.width + proto.menuItemBorder + proto.menuItemSpacing;
                    }
                    
    l.hilite = l.document.layers[1];
                    if (
    proto.bgImageUp) l.background.src = proto.bgImageUp;
                    
    l.document.layers[1].isHilite = true;
                    if (
    l.document.layers.length > 2) {
                        
    l.childMenu = container.menus[i].items[n].menuLayer;
                        
    l.document.layers[2].left = l.clip.width -13;
                        
    l.document.layers[2].top = (l.clip.height / 2) -4;
                        
    l.document.layers[2].clip.left += 3;
                        
    l.Menu.childMenus[l.Menu.childMenus.length] = l.childMenu;
                    }
                }
                if( 
    proto.menuBgOpaque ) body.document.bgColor = proto.bgColor;
                if( 
    proto.vertical ) {
                    
    body.clip.width  = l.clip.width +proto.menuBorder;
                    
    body.clip.height = l.top + l.clip.height +proto.menuBorder;
                } else {
                    
    body.clip.height  = l.clip.height +proto.menuBorder;
                    
    body.clip.width = l.left + l.clip.width  +proto.menuBorder;
                    if( 
    body.clip.width > window.innerWidth ) body.clip.width = window.innerWidth;
                }
                var 
    focusItem = body.document.layers[n];
                
    focusItem.clip.width = body.clip.width;
                
    focusItem.Menu = l.Menu;
                
    focusItem.top = -30;
                
    focusItem.captureEvents(Event.MOUSEDOWN);
                
    focusItem.onmousedown = onMenuItemDown;
                if( 
    proto.menuBgOpaque ) menu.document.bgColor = proto.menuBorderBgColor;
                var 
    lite = menu.document.layers[0];
                if( 
    proto.menuBgOpaque ) lite.document.bgColor = proto.menuLiteBgColor;
                
    lite.clip.width = body.clip.width +1;
                
    lite.clip.height = body.clip.height +1;
                
    menu.clip.width = body.clip.width + (proto.menuBorder * 3) ;
                
    menu.clip.height = body.clip.height + (proto.menuBorder * 3);
            }
        } else {
            if ((!
    document.all) && (container.hasChildNodes) && !window.mmIsOpera) {
                
    container.innerHTML=content;
            } else {
                
    container.document.open("text/html");
                
    container.document.writeln(content);
                
    container.document.close();    
            }
            if (!
    FIND("menuLayer0")) return;
            var 
    menuCount = 0;
            for (var 
    x=0; x<container.menus.length; x++) {
                var 
    menuLayer = FIND("menuLayer" + x);
                
    container.menus[x].menuLayer = "menuLayer" + x;
                
    menuLayer.Menu = container.menus[x];
                
    menuLayer.Menu.container = "menuLayer" + x;
                
    menuLayer.style.zindex = 1;
                var 
    s = menuLayer.style;
                
    s.pixeltop = -300;
                
    s.pixelleft = -300;
                
    s.top = '-300px';
                
    s.left = '-300px';

                var 
    menu = container.menus[x];
                
    menu.menuItemWidth = menu.menuWidth || menu.menuIEWidth || 140;
                if( 
    menu.menuBgOpaque ) menuLayer.style.backgroundColor = menu.menuBorderBgColor;
                var 
    top = 0;
                var 
    left = 0;
                
    menu.menuItemLayers = new Array();
                for (var 
    i=0; i<container.menus[x].items.length; i++) {
                    var 
    l = FIND("menuItem" + menuCount);
                    
    l.Menu = container.menus[x];
                    
    l.Menu.menuItemLayers[l.Menu.menuItemLayers.length] = l;
                    if (
    l.addEventListener || window.mmIsOpera) {
                        
    l.style.width = menu.menuItemWidth + 'px';
                        
    l.style.height = menu.menuItemHeight + 'px';
                        
    l.style.pixelWidth = menu.menuItemWidth;
                        
    l.style.pixelHeight = menu.menuItemHeight;
                        
    l.style.top = top + 'px';
                        
    l.style.left = left + 'px';
                        if(
    l.addEventListener) {
                            
    l.addEventListener("mouseover", onMenuItemOver, false);
                            
    l.addEventListener("click", onMenuItemAction, false);
                            
    l.addEventListener("mouseout", mouseoutMenu, false);
                        }
                        if( 
    menu.menuItemHAlign != 'left' ) {
                            
    l.hiliteShim = FIND("menuItemHilite" + menuCount + "Shim");
                            
    l.hiliteShim.style.visibility = "inherit";
                            
    l.textShim = FIND("menuItemText" + menuCount + "Shim");
                            
    l.hiliteShim.style.pixelWidth = menu.menuItemWidth - 2*menu.menuItemPadding - menu.menuItemIndent;
                            
    l.hiliteShim.style.width = l.hiliteShim.style.pixelWidth;
                            
    l.textShim.style.pixelWidth = menu.menuItemWidth - 2*menu.menuItemPadding - menu.menuItemIndent;
                            
    l.textShim.style.width = l.textShim.style.pixelWidth;    
                        }
                    } else {
                        
    l.style.pixelWidth = menu.menuItemWidth;
                        
    l.style.pixelHeight = menu.menuItemHeight;
                        
    l.style.pixelTop = top;
                        
    l.style.pixelLeft = left;
                        if( 
    menu.menuItemHAlign != 'left' ) {
                            var 
    shim = FIND("menuItemShim" + menuCount);
                            
    shim[0].style.pixelWidth = menu.menuItemWidth - 2*menu.menuItemPadding - menu.menuItemIndent;
                            
    shim[1].style.pixelWidth = menu.menuItemWidth - 2*menu.menuItemPadding - menu.menuItemIndent;
                            
    shim[0].style.width = shim[0].style.pixelWidth + 'px';
                            
    shim[1].style.width = shim[1].style.pixelWidth + 'px';
                        }
                    }
                    if( 
    menu.vertical ) top = top + menu.menuItemHeight+menu.menuItemBorder+menu.menuItemSpacing;
                    else 
    left = left + menu.menuItemWidth+menu.menuItemBorder+menu.menuItemSpacing;
                    
    l.style.fontSize = menu.fontSize + 'px';
                    
    l.style.backgroundColor = menu.menuItemBgColor;
                    
    l.style.visibility = "inherit";
                    
    l.saveColor = menu.menuItemBgColor;
                    
    l.menuHiliteBgColor = menu.menuHiliteBgColor;
                    
    l.mmaction = container.menus[x].actions[i];
                    
    l.hilite = FIND("menuItemHilite" + menuCount);
                    
    l.focusItem = FIND("focusItem" + x);
                    
    l.focusItem.style.pixelTop = -30;
                    
    l.focusItem.style.top = '-30px';
                    var 
    childItem = FIND("childMenu" + menuCount);
                    if (
    childItem) {
                        
    l.childMenu = container.menus[x].items[i].menuLayer;
                        
    childItem.style.pixelLeft = menu.menuItemWidth -11;
                        
    childItem.style.left = childItem.style.pixelLeft + 'px';
                        
    childItem.style.pixelTop = (menu.menuItemHeight /2) -4;
                        
    childItem.style.top = childItem.style.pixelTop + 'px';
                        
    l.Menu.childMenus[l.Menu.childMenus.length] = l.childMenu;
                    }
                    
    l.style.cursor = "hand";
                    
    menuCount++;
                }
                if( 
    menu.vertical ) {
                    
    menu.menuHeight = top-1-menu.menuItemSpacing;
                    
    menu.menuWidth = menu.menuItemWidth;
                } else {
                    
    menu.menuHeight = menu.menuItemHeight;
                    
    menu.menuWidth = left-1-menu.menuItemSpacing;
                }

                var 
    lite = FIND("menuLite" + x);
                var 
    s = lite.style;
                
    s.pixelHeight = menu.menuHeight +(menu.menuBorder * 2);
                
    s.height = s.pixelHeight + 'px';
                
    s.pixelWidth = menu.menuWidth + (menu.menuBorder * 2);
                
    s.width = s.pixelWidth + 'px';
                if( 
    menu.menuBgOpaque ) s.backgroundColor = menu.menuLiteBgColor;

                var 
    body = FIND("menuFg" + x);
                
    s = body.style;
                
    s.pixelHeight = menu.menuHeight + menu.menuBorder;
                
    s.height = s.pixelHeight + 'px';
                
    s.pixelWidth = menu.menuWidth + menu.menuBorder;
                
    s.width = s.pixelWidth + 'px';
                if( 
    menu.menuBgOpaque ) s.backgroundColor = menu.bgColor;

                
    s = menuLayer.style;
                
    s.pixelWidth  = menu.menuWidth + (menu.menuBorder * 4);
                
    s.width = s.pixelWidth + 'px';
                
    s.pixelHeight  = menu.menuHeight+(menu.menuBorder*4);
                
    s.height = s.pixelHeight + 'px';
            }
        }
        if (
    document.captureEvents) document.captureEvents(Event.MOUSEUP);
        if (
    document.addEventListener) document.addEventListener("mouseup", onMenuItemOver, false);
        if (
    document.layers && window.innerWidth) {
            
    window.onresize = NS4resize;
            
    window.NS4sIW = window.innerWidth;
            
    window.NS4sIH = window.innerHeight;
            
    setTimeout("NS4resize()",500);
        }
        
    document.onmouseup = mouseupMenu;
        
    window.mmWroteMenu = true;
        
    status = "";
    }

    function 
    NS4resize() {
        if (
    NS4sIW != window.innerWidth || NS4sIH != window.innerHeight) window.location.reload();
    }

    function 
    onMenuItemOver(e, l) {
        
    MM_clearTimeout();
        
    l = l || this;
        var 
    a = window.ActiveMenuItem;
        if (
    document.layers) {
            if (
    a) {
                
    a.document.bgColor = a.saveColor;
                if (
    a.hilite) a.hilite.visibility = "hidden";
                if (
    a.Menu.bgImageOver) a.background.src = a.Menu.bgImageUp;
                
    a.focusItem.top = -100;
                
    a.clicked = false;
            }
            if (
    l.hilite) {
                
    l.document.bgColor = l.menuHiliteBgColor;
                
    l.zIndex = 1;
                
    l.hilite.visibility = "inherit";
                
    l.hilite.zIndex = 2;
                
    l.document.layers[1].zIndex = 1;
                
    l.focusItem.zIndex = this.zIndex +2;
            }
            if (
    l.Menu.bgImageOver) l.background.src = l.Menu.bgImageOver;
            
    l.focusItem.top = this.top;
            
    l.focusItem.left = this.left;
            
    l.focusItem.clip.width = l.clip.width;
            
    l.focusItem.clip.height = l.clip.height;
            
    l.Menu.hideChildMenu(l);
        } else if (
    l.style && l.Menu) {
            if (
    a) {
                
    a.style.backgroundColor = a.saveColor;
                if (
    a.hilite) a.hilite.style.visibility = "hidden";
                if (
    a.hiliteShim) a.hiliteShim.style.visibility = "inherit";
                if (
    a.Menu.bgImageUp) a.style.background = "url(" + a.Menu.bgImageUp +")";;
            } 
            
    l.style.backgroundColor = l.menuHiliteBgColor;
            
    l.zIndex = 1;
            if (
    l.Menu.bgImageOver) l.style.background = "url(" + l.Menu.bgImageOver +")";
            if (
    l.hilite) {
                
    l.hilite.style.visibility = "inherit";
                if( 
    l.hiliteShim ) l.hiliteShim.style.visibility = "visible";
            }
            
    l.focusItem.style.pixelTop = l.style.pixelTop;
            
    l.focusItem.style.top = l.focusItem.style.pixelTop + 'px';
            
    l.focusItem.style.pixelLeft = l.style.pixelLeft;
            
    l.focusItem.style.left = l.focusItem.style.pixelLeft + 'px';
            
    l.focusItem.style.zIndex = l.zIndex +1;
            
    l.Menu.hideChildMenu(l);
        } else return;
        
    window.ActiveMenuItem = l;
    }

    function 
    onMenuItemAction(e, l) {
        
    l = window.ActiveMenuItem;
        if (!
    l) return;
        
    hideActiveMenus();
        if (
    l.mmaction) eval("" + l.mmaction);
        
    window.ActiveMenuItem = 0;
    }

    function 
    MM_clearTimeout() {
        if (
    mmHideMenuTimer) clearTimeout(mmHideMenuTimer);
        
    mmHideMenuTimer = null;
        
    mmDHFlag = false;
    }

    function 
    MM_startTimeout() {
        if( 
    window.ActiveMenu ) {
            
    mmStart = new Date();
            
    mmDHFlag = true;
            
    mmHideMenuTimer = setTimeout("mmDoHide()", window.ActiveMenu.Menu.hideTimeout);
        }
    }

    function 
    mmDoHide() {
        if (!
    mmDHFlag || !window.ActiveMenu) return;
        var 
    elapsed = new Date() - mmStart;
        var 
    timeout = window.ActiveMenu.Menu.hideTimeout;
        if (
    elapsed < timeout) {
            
    mmHideMenuTimer = setTimeout("mmDoHide()", timeout+100-elapsed);
            return;
        }
        
    mmDHFlag = false;
        
    hideActiveMenus();
        
    window.ActiveMenuItem = 0;
    }

    function 
    MM_showMenu(menu, x, y, child, imgname) {
        if (!
    window.mmWroteMenu) return;
        
    MM_clearTimeout();
        if (
    menu) {
            var 
    obj = FIND(imgname) || document.images[imgname] || document.links[imgname] || document.anchors[imgname];
            
    x = moveXbySlicePos (x, obj);
            
    y = moveYbySlicePos (y, obj);
        }
        if (
    document.layers) {
            if (
    menu) {
                var 
    l = menu.menuLayer || menu;
                
    l.top = l.left = 1;
                
    hideActiveMenus();
                if (
    this.visibility) l = this;
                
    window.ActiveMenu = l;
            } else {
                var 
    l = child;
            }
            if (!
    l) return;
            for (var 
    i=0; i<l.layers.length; i++) {                
                if (!
    l.layers[i].isHilite) l.layers[i].visibility = "inherit";
                if (
    l.layers[i].document.layers.length > 0) MM_showMenu(null, "relative", "relative", l.layers[i]);
            }
            if (
    l.parentLayer) {
                if (
    x != "relative") l.parentLayer.left = x || window.pageX || 0;
                if (
    l.parentLayer.left + l.clip.width > window.innerWidth) l.parentLayer.left -= (l.parentLayer.left + l.clip.width - window.innerWidth);
                if (
    y != "relative") l.parentLayer.top = y || window.pageY || 0;
                if (
    l.parentLayer.isContainer) {
                    
    l.Menu.xOffset = window.pageXOffset;
                    
    l.Menu.yOffset = window.pageYOffset;
                    
    l.parentLayer.clip.width = window.ActiveMenu.clip.width +2;
                    
    l.parentLayer.clip.height = window.ActiveMenu.clip.height +2;
                    if (
    l.parentLayer.menuContainerBgColor && l.Menu.menuBgOpaque ) l.parentLayer.document.bgColor = l.parentLayer.menuContainerBgColor;
                }
            }
            
    l.visibility = "inherit";
            if (
    l.Menu) l.Menu.container.visibility = "inherit";
        } else if (
    FIND("menuItem0")) {
            var 
    l = menu.menuLayer || menu;    
            
    hideActiveMenus();
            if (
    typeof(l) == "string") l = FIND(l);
            
    window.ActiveMenu = l;
            var 
    s = l.style;
            
    s.visibility = "inherit";
            if (
    x != "relative") {
                
    s.pixelLeft = x || (window.pageX + document.body.scrollLeft) || 0;
                
    s.left = s.pixelLeft + 'px';
            }
            if (
    y != "relative") {
                
    s.pixelTop = y || (window.pageY + document.body.scrollTop) || 0;
                
    s.top = s.pixelTop + 'px';
            }
            
    l.Menu.xOffset = document.body.scrollLeft;
            
    l.Menu.yOffset = document.body.scrollTop;
        }
        if (
    menu) window.activeMenus[window.activeMenus.length] = l;
        
    MM_clearTimeout();
    }

    function 
    onMenuItemDown(e, l) {
        var 
    a = window.ActiveMenuItem;
        if (
    document.layers && a) {
            
    a.eX = e.pageX;
            
    a.eY = e.pageY;
            
    a.clicked = true;
        }
    }

    function 
    mouseupMenu(e) {
        
    hideMenu(true, e);
        
    hideActiveMenus();
        return 
    true;
    }

    function 
    getExplorerVersion() {
        var 
    ieVers = parseFloat(navigator.appVersion);
        if( 
    navigator.appName != 'Microsoft Internet Explorer' ) return ieVers;
        var 
    tempVers = navigator.appVersion;
        var 
    i = tempVers.indexOf( 'MSIE ' );
        if( 
    i >= 0 ) {
            
    tempVers = tempVers.substring( i+5 );
            
    ieVers = parseFloat( tempVers ); 
        }
        return 
    ieVers;
    }

    function 
    mouseoutMenu() {
        if ((
    navigator.appName == "Microsoft Internet Explorer") && (getExplorerVersion() < 4.5))
            return 
    true;
        
    hideMenu(false, false);
        return 
    true;
    }

    function 
    hideMenu(mouseup, e) {
        var 
    a = window.ActiveMenuItem;
        if (
    a && document.layers) {
            
    a.document.bgColor = a.saveColor;
            
    a.focusItem.top = -30;
            if (
    a.hilite) a.hilite.visibility = "hidden";
            if (
    mouseup && a.mmaction && a.clicked && window.ActiveMenu) {
                 if (
    a.eX <= e.pageX+15 && a.eX >= e.pageX-15 && a.eY <= e.pageY+10 && a.eY >= e.pageY-10) {
                    
    setTimeout('window.ActiveMenu.Menu.onMenuItemAction();', 500);
                }
            }
            
    a.clicked = false;
            if (
    a.Menu.bgImageOver) a.background.src = a.Menu.bgImageUp;
        } else if (
    window.ActiveMenu && FIND("menuItem0")) {
            if (
    a) {
                
    a.style.backgroundColor = a.saveColor;
                if (
    a.hilite) a.hilite.style.visibility = "hidden";
                if (
    a.hiliteShim) a.hiliteShim.style.visibility = "inherit";
                if (
    a.Menu.bgImageUp) a.style.background = "url(" + a.Menu.bgImageUp +")";
            }
        }
        if (!
    mouseup && window.ActiveMenu) {
            if (
    window.ActiveMenu.Menu) {
                if (
    window.ActiveMenu.Menu.hideOnMouseOut) MM_startTimeout();
                return(
    true);
            }
        }
        return(
    true);
    }

    function 
    hideChildMenu(hcmLayer) {
        
    MM_clearTimeout();
        var 
    l = hcmLayer;
        for (var 
    i=0; i < l.Menu.childMenus.length; i++) {
            var 
    theLayer = l.Menu.childMenus[i];
            if (
    document.layers) theLayer.visibility = "hidden";
            else {
                
    theLayer = FIND(theLayer);
                
    theLayer.style.visibility = "hidden";
                if( 
    theLayer.Menu.menuItemHAlign != 'left' ) {
                    for(var 
    j = 0; j < theLayer.Menu.menuItemLayers.length; j++) {
                        var 
    itemLayer = theLayer.Menu.menuItemLayers[j];
                        if(
    itemLayer.textShim) itemLayer.textShim.style.visibility = "inherit";
                    }
                }
            }
            
    theLayer.Menu.hideChildMenu(theLayer);
        }
        if (
    l.childMenu) {
            var 
    childMenu = l.childMenu;
            if (
    document.layers) {
                
    l.Menu.MM_showMenu(null,null,null,childMenu.layers[0]);
                
    childMenu.zIndex = l.parentLayer.zIndex +1;
                
    childMenu.top = l.Menu.menuLayer.top + l.Menu.submenuYOffset;
                if( 
    l.Menu.vertical ) {
                    if( 
    l.Menu.submenuRelativeToItem ) childMenu.top += l.top + l.parentLayer.top;
                    
    childMenu.left = l.parentLayer.left + l.parentLayer.clip.width - (2*l.Menu.menuBorder) + l.Menu.menuLayer.left + l.Menu.submenuXOffset;
                } else {
                    
    childMenu.top += l.top + l.parentLayer.top;    
                    if( 
    l.Menu.submenuRelativeToItem ) childMenu.left = l.Menu.menuLayer.left + l.left + l.clip.width + (2*l.Menu.menuBorder) + l.Menu.submenuXOffset;
                    else 
    childMenu.left = l.parentLayer.left + l.parentLayer.clip.width - (2*l.Menu.menuBorder) + l.Menu.menuLayer.left + l.Menu.submenuXOffset;
                }
                if( 
    childMenu.left < l.Menu.container.clip.left ) l.Menu.container.clip.left = childMenu.left;
                var 
    w = childMenu.clip.width+childMenu.left-l.Menu.container.clip.left;
                if (
    w > l.Menu.container.clip.width)  l.Menu.container.clip.width = w;
                var 
    h = childMenu.clip.height+childMenu.top-l.Menu.container.clip.top;
                if (
    h > l.Menu.container.clip.height) l.Menu.container.clip.height = h;
                
    l.document.layers[1].zIndex = 0;
                
    childMenu.visibility = "inherit";
            } else if (
    FIND("menuItem0")) {
                
    childMenu = FIND(l.childMenu);
                var 
    menuLayer = FIND(l.Menu.menuLayer);
                var 
    s = childMenu.style;
                
    s.zIndex = menuLayer.style.zIndex+1;
                if (
    document.all || window.mmIsOpera) {
                    
    s.pixelTop = menuLayer.style.pixelTop + l.Menu.submenuYOffset;
                    if( 
    l.Menu.vertical ) {
                        if( 
    l.Menu.submenuRelativeToItem ) s.pixelTop += l.style.pixelTop;
                        
    s.pixelLeft = l.style.pixelWidth + menuLayer.style.pixelLeft + l.Menu.submenuXOffset;
                        
    s.left = s.pixelLeft + 'px';
                    } else {
                        
    s.pixelTop += l.style.pixelTop;
                        if( 
    l.Menu.submenuRelativeToItem ) s.pixelLeft = menuLayer.style.pixelLeft + l.style.pixelLeft + l.style.pixelWidth + (2*l.Menu.menuBorder) + l.Menu.submenuXOffset;
                        else 
    s.pixelLeft = (menuLayer.style.pixelWidth-4*l.Menu.menuBorder) + menuLayer.style.pixelLeft + l.Menu.submenuXOffset;
                        
    s.left = s.pixelLeft + 'px';
                    }
                } else {
                    var 
    top = parseInt(menuLayer.style.top) + l.Menu.submenuYOffset;
                    var 
    left = 0;
                    if( 
    l.Menu.vertical ) {
                        if( 
    l.Menu.submenuRelativeToItem ) top += parseInt(l.style.top);
                        
    left = (parseInt(menuLayer.style.width)-4*l.Menu.menuBorder) + parseInt(menuLayer.style.left) + l.Menu.submenuXOffset;
                    } else {
                        
    top += parseInt(l.style.top);
                        if( 
    l.Menu.submenuRelativeToItem ) left = parseInt(menuLayer.style.left) + parseInt(l.style.left) + parseInt(l.style.width) + (2*l.Menu.menuBorder) + l.Menu.submenuXOffset;
                        else 
    left = (parseInt(menuLayer.style.width)-4*l.Menu.menuBorder) + parseInt(menuLayer.style.left) + l.Menu.submenuXOffset;
                    }
                    
    s.top = top + 'px';
                    
    s.left = left + 'px';
                }
                
    childMenu.style.visibility = "inherit";
            } else return;
            
    window.activeMenus[window.activeMenus.length] = childMenu;
        }
    }

    function 
    hideActiveMenus() {
        if (!
    window.activeMenus) return;
        for (var 
    i=0; i < window.activeMenus.length; i++) {
            if (!
    activeMenus[i]) continue;
            if (
    activeMenus[i].visibility && activeMenus[i].Menu && !window.mmIsOpera) {
                
    activeMenus[i].visibility = "hidden";
                
    activeMenus[i].Menu.container.visibility = "hidden";
                
    activeMenus[i].Menu.container.clip.left = 0;
            } else if (
    activeMenus[i].style) {
                var 
    s = activeMenus[i].style;
                
    s.visibility = "hidden";
                
    s.left = '-200px';
                
    s.top = '-200px';
            }
        }
        if (
    window.ActiveMenuItem) hideMenu(false, false);
        
    window.activeMenus.length = 0;
    }

    function 
    moveXbySlicePos (x, img) { 
        if (!
    document.layers) {
            var 
    onWindows = navigator.platform ? navigator.platform == "Win32" : false;
            var 
    macIE45 = document.all && !onWindows && getExplorerVersion() == 4.5;
            var 
    par = img;
            var 
    lastOffset = 0;
            while(
    par){
                if( 
    par.leftMargin && ! onWindows ) x += parseInt(par.leftMargin);
                if( (
    par.offsetLeft != lastOffset) && par.offsetLeft ) x += parseInt(par.offsetLeft);
                if( 
    par.offsetLeft != 0 ) lastOffset = par.offsetLeft;
                
    par = macIE45 ? par.parentElement : par.offsetParent;
            }
        } else if (
    img.x) x += img.x;
        return 
    x;
    }

    function 
    moveYbySlicePos (y, img) {
        if(!
    document.layers) {
            var 
    onWindows = navigator.platform ? navigator.platform == "Win32" : false;
            var 
    macIE45 = document.all && !onWindows && getExplorerVersion() == 4.5;
            var 
    par = img;
            var 
    lastOffset = 0;
            while(
    par){
                if( 
    par.topMargin && !onWindows ) y += parseInt(par.topMargin);
                if( (
    par.offsetTop != lastOffset) && par.offsetTop ) y += parseInt(par.offsetTop);
                if( 
    par.offsetTop != 0 ) lastOffset = par.offsetTop;
                
    par = macIE45 ? par.parentElement : par.offsetParent;
            }        
        } else if (
    img.y >= 0) y += img.y;
        return 
    y;
    } 
    Naposledy upravil Jezevec; 20.12.2005 v 09:10. Důvod: Zbytecne dlouhe - pouzivej tagy
    DECENT II EXTREME
    ---> http://7luke.com/decent <--- už je zase jiný konfig ale není čas to změnit na webu

  3. #3

    Standardní Re: Další problem s pop-up menu (úrovňovým) javascript

    musím to tady oprášit, to fakt nikdo neporadí ? ;,(

    částečně jsem problém řešil zvětšením výšky buňky menu, ale potřeboval bych ještě to posunutí


    [img]www.calver.cz/luke/popup_menu.jpg[/img]

    javascript, vygenerovaný dreamweaverem mx

    http://www.calver.cz/luke/mm_menu.zip
    www.calver.cz/luke/mm_menu.zip
    DECENT II EXTREME
    ---> http://7luke.com/decent <--- už je zase jiný konfig ale není čas to změnit na webu

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •