Loading:


    Menu z boksami (Pop-it menu)

    Skrypt tworzy linki z boksami otwieranymi po najechaniu na nie.



    Napisz Artyku³

    Listing


    // Kod do umieszczeni miedzy znacznikami <body></body>
    <a href="#" onMouseover="showmenu(event,linkset[0])" onMouseout="delayhidemenu()">Link 1</a><br>
    <a href="#" onMouseover="showmenu(event,linkset[1], '180px')" onMouseout="delayhidemenu()">Link 2</a>


    // Kod JavaScript do umieszczeni miedzy znacznikami <head></head>

    <style type="text/css">

    #popitmenu{
    position: absolute;
    background-color: white;
    border:1px solid black;
    font: normal 12px Verdana;
    line-height: 18px;
    z-index: 100;
    visibility: hidden;
    }

    #popitmenu a{
    text-decoration: none;
    padding-left: 6px;
    color: black;
    display: block;
    }

    #popitmenu a:hover{ /*hover background color*/
    background-color: #CCFF9D;
    }

    </style>

    <script type="text/javascript">

    /***********************************************
    * Pop-it menu- ? Dynamic Drive (www.dynamicdrive.com)
    * This notice MUST stay intact for legal use
    * Visit http://www.dynamicdrive.com/ for full source code
    ***********************************************/


    var defaultMenuWidth="150px" //set default menu width.

    var linkset=new Array()
    //SPECIFY MENU SETS AND THEIR LINKS. FOLLOW SYNTAX LAID OUT

    linkset[0]='<a href="http://funkcje.net">funkcje.net</a>'
    linkset[0]+='<hr>' //Optional Separator
    linkset[0]+='<a href="http://funkcje.net">funkcje.net</a>'
    linkset[0]+='<a href="http://funkcje.net">funkcje.net</a>'


    linkset[1]='<a href="http://msnbc.com">MSNBC</a>'
    linkset[1]+='<a href="http://cnn.com">CNN</a>'
    linkset[1]+='<a href="http://news.bbc.co.uk">BBC News</a>'
    linkset[1]+='<a href="http://www.washingtonpost.com">Washington Post</a>'

    ////No need to edit beyond here

    var ie5=document.all && !window.opera
    var ns6=document.getElementById

    if (ie5||ns6)
    document.write('<div id="popitmenu" onMouseover="clearhidemenu();" onMouseout="dynamichide(event)"></div>')

    function iecompattest(){
    return (document.compatMode && document.compatMode.indexOf("CSS")!=-1)? document.documentElement : document.body
    }

    function showmenu(e, which, optWidth){
    if (!document.all&&!document.getElementById)
    return
    clearhidemenu()
    menuobj=ie5? document.all.popitmenu : document.getElementById("popitmenu")
    menuobj.innerHTML=which
    menuobj.style.width=(typeof optWidth!="undefined")? optWidth : defaultMenuWidth
    menuobj.contentwidth=menuobj.offsetWidth
    menuobj.contentheight=menuobj.offsetHeight
    eventX=ie5? event.clientX : e.clientX
    eventY=ie5? event.clientY : e.clientY
    //Find out how close the mouse is to the corner of the window
    var rightedge=ie5? iecompattest().clientWidth-eventX : window.innerWidth-eventX
    var bottomedge=ie5? iecompattest().clientHeight-eventY : window.innerHeight-eventY
    //if the horizontal distance isn't enough to accomodate the width of the context menu
    if (rightedge<menuobj.contentwidth)
    //move the horizontal position of the menu to the left by it's width
    menuobj.style.left=ie5? iecompattest().scrollLeft+eventX-menuobj.contentwidth+"px" : window.pageXOffset+eventX-menuobj.contentwidth+"px"
    else
    //position the horizontal position of the menu where the mouse was clicked
    menuobj.style.left=ie5? iecompattest().scrollLeft+eventX+"px" : window.pageXOffset+eventX+"px"
    //same concept with the vertical position
    if (bottomedge<menuobj.contentheight)
    menuobj.style.top=ie5? iecompattest().scrollTop+eventY-menuobj.contentheight+"px" : window.pageYOffset+eventY-menuobj.contentheight+"px"
    else
    menuobj.style.top=ie5? iecompattest().scrollTop+event.clientY+"px" : window.pageYOffset+eventY+"px"
    menuobj.style.visibility="visible"
    return false
    }

    function contains_ns6(a, b) {
    //Determines if 1 element in contained in another- by Brainjar.com
    while (b.parentNode)
    if ((b = b.parentNode) == a)
    return true;
    return false;
    }

    function hidemenu(){
    if (window.menuobj)
    menuobj.style.visibility="hidden"
    }

    function dynamichide(e){
    if (ie5&&!menuobj.contains(e.toElement))
    hidemenu()
    else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
    hidemenu()
    }

    function delayhidemenu(){
    delayhide=setTimeout("hidemenu()",500)
    }

    function clearhidemenu(){
    if (window.delayhide)
    clearTimeout(delayhide)
    }

    if (ie5||ns6)
    document.onclick=hidemenu

    </script>




    Dodano przez: igor
    Ranga: Administrator serwisu Punktów: 0
    Komentarze użytkowników
    Którą wartość musiałbym zmienić, żeby menu wyświetlało się zaraz pod przyciskiem na który najeżdżam, a nie pod kursorem (czyli na równi z lewej i z prawej strony z przyciskiem i zaraz pod nim, a nie żeby zaczynało się od miejsca gdzie jest kursor)?
    autor: Linhael | 328 | 2009-07-11 02:45:51


      • Tre¶æ komentarza
        Kod do komentarza (opcjonalnie)
        PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
        Autor
        Token
        token

         

         








    funkcje.net
    Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2025 v.1.5 | design: diviXdesign & rainbowcolors