Avatar
Vladimír Dubecký:

Ahoj, potřeboval bych poradit ohledně menu, které je pevně zafixované na stránce. Jde o to, že na začátku mám určitý nadpis, a když sjedu se stránkou níž tak je právě mezi vrchem stránky a tím menu místo, které tam nechci. Potřeboval bych tedy aby to menu začalo jed dolů až po určité vzdálenosti, v mém případě až bych sjel z toho nadpisu. Snad jsem to vysvětlil dobře :)
Předem děkuji za odpověď
HTML MENU

<ul>
  <li><a href="default.asp">Domů</a></li>
  <li><a href="news.asp">Blog</a></li>
  <li><a href="contact.asp">Články</a></li>
  <li><a href="about.asp">Náš tým</a></li>
</ul>
</div>

CSS

/**MENU**/
ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background-color: #333;
}

li {
    float: left;
}

li a {
    display: inline-block;
    color: white;
    text-align: left;
    padding: 14px 26px;
    text-decoration: none;

}

/* Change the link color to #111 (black) on hover */
li a:hover {
    background-color: green;
}
.active {
    background-color: #4CAF50;
}
ul {
    position: fixed;
    top: 150px;
    width: 100%;
}
 
Odpovědět 1. května 14:04
Avatar
Jakub Klindera:

Zkopíruj tu prosím celý html kód. Ať vidíme ten tvůj

div
 
Nahoru Odpovědět 1. května 22:11
Avatar
Petr Čech (czubehead):

Jmenuje se to sticky menu, myslím, že je to na to někde tutoriál

Nahoru Odpovědět  +1 1. května 23:32
Why so serious? -Joker
Avatar
Vladimír Dubecký:

Děkuji za odpověď.
Bohužel se mi to nedaří nějak přidat.
Přidám vždy do kódu ten script, co je zde: http://www.itnetwork.cz/…nu-a-sidebar

<script>
function fixMenu()
   {
   var menu_place = $('#MENU').offset().top;
   var menu = $('nav');
   $(window).scroll(function(){ ... });
   var scroll_top = $(window).scrollTop();
   if ( scroll_top > menu_place )
        if ( scroll_top > menu_place )
   {
      CSS.css({ 'position': 'fixed', 'top': 0 });
   }
else
   {
      CSS.css({ 'position': 'relative' });
   }

Jenže to nefunguje. A když ten skript ukončím až za tím menu, tak mi zase to celé menu zmizí.
Nevíte, kde můžu dělat chybu?
Děkuji.

 
Nahoru Odpovědět 3. května 17:25
Avatar
Odpovídá na Vladimír Dubecký
Martin Štěpánek (Enormyk):

Vložil jsi před to jQuery (i UI) a voláš funkci fixMenu() po načtení stránky? :-)

Nahoru Odpovědět 3. května 18:27
Nesnáším, když někdo u if nepoužívá {}, byť se jedná o jeden řádek.
Avatar
Vladimír Dubecký:

Promin, vůbec nevím co tím myslíš. Jsme začátečník, tak mě omluv prosím ;)

 
Nahoru Odpovědět 3. května 20:02
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na Vladimír Dubecký
Honza Bittner:

Měl bys tam mít toto. Ve $(function(){}); se píše kód, který se vykoná po načtení stránky. Samotná funkce fixMenu() ti totiž nic dělat nebude, musíš jí někde spustit, čímž se zaregistruje scroll event atp...

$(function(){
        fixMenu();
});

function fixMenu()
{
        var menu_place = $('#menu').offset().top;
        var menu = $('nav');

        $(window).scroll(function(){

                var scroll_top = $(window).scrollTop();

                if ( scroll_top > menu_place )
                        {
                                menu.css({ 'position': 'fixed', 'top':0 });
                        }
                else
                        {
                                menu.css({ 'position': 'relative' });
                        }
        });
}
Nahoru Odpovědět 4. května 13:22
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.