SmartMenus Tutoriál

Animace zobrazování/skrývání sub menu


V této části si ukážeme nastavení, která se týkají animace zobrazování/skrývání sub menu. Nastavení, která jsou tu vysvětlena jsou následující:

  • showDuration - nastavuje čas pro animaci otevírání sub menu v normálním stavu
  • showFunction - nastavuje funkci, která se použije, když se má sub menu otevřít v normálním stavu
  • hideDuration - nastavuje čas pro animaci zavírání sub menu v normálním stavu
  • hideFunction - nastavuje funkci, která se použije, když se má sub menu zavřít v normálním stavu
  • collapsibleShowDuration - nastavuje čas pro animaci otevírání sub menu v collapsible stavu
  • collapsibleShowFunction - nastavuje funkci, která se použije, když se má sub menu otevřít v collapsible stavu
  • collapsibleHideDuration - nastavuje čas pro animaci zavírání sub menu v collapsible stavu
  • collapsibleHideFunction - nastavuje funkci, která se použije, když se má sub menu zavřít v collapsible stavu

showDuration

Toto nastavení nastavuje čas pro animaci otevírání sub menu v normálním stavu, když je nastavení showFunction nastaveno na hodnotu null. Pokud pomocí nastavení showFunction používáme vlastní funkci, tak si čas animace určujeme v ní a toto nastavení nemá na nic vliv. Čas nastavujeme v milisekundách a defaultní hodnota je 0.

<ul id="moje-menu" class="sm sm-muj-vzhled">
    <li><a href="#">první odkaz</a></li>
    <li><a href="#">rozbalovací nabídka</a>
        <ul>
            <li><a href="#">první odkaz</a></li>
            <li><a href="#">druhý odkaz</a></li>
            <li><a href="#">třetí odkaz</a></li>
        </ul>
    </li>
    <li><a href="#">druhý odkaz</a></li>
</ul>

<script src="./js/jquery.min.js"></script>
<script src="./js/jquery.smartmenus.min.js"></script>
<script>
    $('#moje-menu').smartmenus({
        showFunction: null, // showDuration nastavení funguje jen když je nastavení showFunction nastaveno na null
        showDuration: 1000 // animace otevírání sub menu bude trvat 1 sekundu
    });
</script>

showFunction

Pomocí tohoto nastavení můžeme nastavit funkci, která se zavolá, když se má sub menu otevřít v normálním stavu. V této funkci můžeme sub menu sami nějakým způsobem otevřít a až jsme hotovi, jen o tom informujeme smartmenus. Funkce, kterou nastavení showFunction předáváme by měla přijímat dva argumenty. Prvním je sub menu element (ul element) a druhým je funkce, kterou musíme zavolat až jsme s otevíráním sub menu hotovi. Následující ukázka ukazuje, jak bychom mohli nastavení showFunction například použít.

<ul id="moje-menu" class="sm sm-muj-vzhled">
    <li><a href="#">první odkaz</a></li>
    <li><a href="#">rozbalovací nabídka</a>
        <ul>
            <li><a href="#">první odkaz</a></li>
            <li><a href="#">druhý odkaz</a></li>
            <li><a href="#">třetí odkaz</a></li>
        </ul>
    </li>
    <li><a href="#">druhý odkaz</a></li>
</ul>

<script src="./js/jquery.min.js"></script>
<script src="./js/jquery.smartmenus.min.js"></script>
<script>
    $('#moje-menu').smartmenus({
        showFunction: function($ul, complete) {
            // provede JQuery funkci fadeIn pro zobrazení sub menu a až se funkce
            // dokončí, dáme o tom smartmenus vědět zavoláním funkce complete
            $ul.fadeIn(1000, complete);
        }
    });
</script>

hideDuration

Toto nastavení nastavuje čas pro animaci zavírání sub menu v normálním stavu, když je nastavení hideFunction nastaveno na hodnotu null. Pokud pomocí nastavení hideFunction používáme vlastní funkci, tak si čas animace určujeme v ní a toto nastavení nemá na nic vliv. Čas nastavujeme v milisekundách a defaultní hodnota je 0.

<ul id="moje-menu" class="sm sm-muj-vzhled">
    <li><a href="#">první odkaz</a></li>
    <li><a href="#">rozbalovací nabídka</a>
        <ul>
            <li><a href="#">první odkaz</a></li>
            <li><a href="#">druhý odkaz</a></li>
            <li><a href="#">třetí odkaz</a></li>
        </ul>
    </li>
    <li><a href="#">druhý odkaz</a></li>
</ul>

<script src="./js/jquery.min.js"></script>
<script src="./js/jquery.smartmenus.min.js"></script>
<script>
    $('#moje-menu').smartmenus({
        showFunction: function($ul, complete) {
            hideFunction: null, // hideDuration nastavení funguje jen když je nastavení hideFunction nastaveno na null
            hideDuration: 1000 // animace zavírání sub menu bude trvat 1 sekundu
        }
    });
</script>

hideFunction

Pomocí tohoto nastavení můžeme nastavit funkci, která se zavolá, když se má sub menu zavřít v normálním stavu. V této funkci můžeme sub menu sami nějakým způsobem zavřít a až jsme hotovi, jen o tom informujeme smartmenus. Funkce, kterou nastavení hideFunction předáváme by měla přijímat dva argumenty. Prvním je sub menu element (ul element) a druhým je funkce, kterou musíme zavolat až jsme se zavíráním sub menu hotovi. Následující ukázka ukazuje, jak bychom mohli nastavení hideFunction například použít.

<ul id="moje-menu" class="sm sm-muj-vzhled">
    <li><a href="#">první odkaz</a></li>
    <li><a href="#">rozbalovací nabídka</a>
        <ul>
            <li><a href="#">první odkaz</a></li>
            <li><a href="#">druhý odkaz</a></li>
            <li><a href="#">třetí odkaz</a></li>
        </ul>
    </li>
    <li><a href="#">druhý odkaz</a></li>
</ul>

<script src="./js/jquery.min.js"></script>
<script src="./js/jquery.smartmenus.min.js"></script>
<script>
    $('#moje-menu').smartmenus({
        hideFunction: function($ul, complete) {
            // provede JQuery funkci fadeOut pro skrytí sub menu a až se funkce
            // dokončí, dáme o tom smartmenus vědět zavoláním funkce complete
            $ul.fadeOut(1000, complete);
        }
    });
</script>

collapsibleShowDuration

Toto nastavení nastavuje čas pro animaci otevírání sub menu v collapsible stavu, když je nastavení collapsibleShowFunction nastaveno na hodnotu null. Pokud pomocí nastavení collapsibleShowFunction používáme vlastní funkci, tak si čas animace určujeme v ní a toto nastavení nemá na nic vliv. Čas nastavujeme v milisekundách a defaultní hodnota je 0.

<!-- aby bylo v ukázce menu vždy v collapsible módu, tak nemá nastaveno žádný vzhled -->
<ul id="moje-menu" class="sm">
    <li><a href="#">první odkaz</a></li>
    <li><a href="#">rozbalovací nabídka</a>
        <ul>
            <li><a href="#">první odkaz</a></li>
            <li><a href="#">druhý odkaz</a></li>
            <li><a href="#">třetí odkaz</a></li>
        </ul>
    </li>
    <li><a href="#">druhý odkaz</a></li>
</ul>

<script src="./js/jquery.min.js"></script>
<script src="./js/jquery.smartmenus.min.js"></script>
<script>
    $('#moje-menu').smartmenus({
        collapsibleShowFunction: null, // collapsibleShowDuration nastavení funguje jen když je nastavení collapsibleShowFunction nastaveno na null
        collapsibleShowDuration: 1000 // animace otevírání sub menu bude trvat 1 sekundu
    });
</script>

collapsibleShowFunction

Pomocí tohoto nastavení můžeme nastavit funkci, která se zavolá, když se má sub menu otevřít v collapsible stavu. V této funkci můžeme sub menu sami nějakým způsobem otevřít a až jsme hotovi, jen o tom informujeme smartmenus. Funkce, kterou nastavení collapsibleShowFunction předáváme by měla přijímat dva argumenty. Prvním je sub menu element (ul element) a druhým je funkce, kterou musíme zavolat až jsme s otevíráním sub menu hotovi. Následující ukázka ukazuje, jak bychom mohli nastavení collapsibleShowFunction například použít.

<!-- aby bylo v ukázce menu vždy v collapsible módu, tak nemá nastaveno žádný vzhled -->
<ul id="moje-menu" class="sm">
    <li><a href="#">první odkaz</a></li>
    <li><a href="#">rozbalovací nabídka</a>
        <ul>
            <li><a href="#">první odkaz</a></li>
            <li><a href="#">druhý odkaz</a></li>
            <li><a href="#">třetí odkaz</a></li>
        </ul>
    </li>
    <li><a href="#">druhý odkaz</a></li>
</ul>

<script src="./js/jquery.min.js"></script>
<script src="./js/jquery.smartmenus.min.js"></script>
<script>
    $('#moje-menu').smartmenus({
        showFunction: function($ul, complete) {
            // provede JQuery funkci slideDown pro zobrazení sub menu a až se funkce
            // dokončí, dáme o tom smartmenus vědět zavoláním funkce complete
            $ul.slideDown(1000, complete);
        }
    });
</script>

collapsibleHideDuration

Toto nastavení nastavuje čas pro animaci zavírání sub menu v collapsible stavu, když je nastavení collapsibleHideFunction nastaveno na hodnotu null. Pokud pomocí nastavení collapsibleHideFunction používáme vlastní funkci, tak si čas animace určujeme v ní a toto nastavení nemá na nic vliv. Čas nastavujeme v milisekundách a defaultní hodnota je 0.

<!-- aby bylo v ukázce menu vždy v collapsible módu, tak nemá nastaveno žádný vzhled -->
<ul id="moje-menu" class="sm">
    <li><a href="#">první odkaz</a></li>
    <li><a href="#">rozbalovací nabídka</a>
        <ul>
            <li><a href="#">první odkaz</a></li>
            <li><a href="#">druhý odkaz</a></li>
            <li><a href="#">třetí odkaz</a></li>
        </ul>
    </li>
    <li><a href="#">druhý odkaz</a></li>
</ul>

<script src="./js/jquery.min.js"></script>
<script src="./js/jquery.smartmenus.min.js"></script>
<script>
    $('#moje-menu').smartmenus({
        showFunction: function($ul, complete) {
            collapsibleBehavior: 'toggle',
            collapsibleHideFunction: null, // collapsibleHideDuration nastavení funguje jen když je nastavení collapsibleHideFunction nastaveno na null
            collapsibleHideDuration: 1000 // animace zavírání sub menu bude trvat 1 sekundu
        }
    });
</script>

collapsibleHideFunction

Pomocí tohoto nastavení můžeme nastavit funkci, která se zavolá, když se má sub menu zavřít v collapsible stavu. V této funkci můžeme sub menu sami nějakým způsobem zavřít a až jsme hotovi, jen o tom informujeme smartmenus. Funkce, kterou nastavení collapsibleHideFunction předáváme by měla přijímat dva argumenty. Prvním je sub menu element (ul element) a druhým je funkce, kterou musíme zavolat až jsme se zavíráním sub menu hotovi. Následující ukázka ukazuje, jak bychom mohli nastavení collapsibleHideFunction například použít.

<!-- aby bylo v ukázce menu vždy v collapsible módu, tak nemá nastaveno žádný vzhled -->
<ul id="moje-menu" class="sm">
    <li><a href="#">první odkaz</a></li>
    <li><a href="#">rozbalovací nabídka</a>
        <ul>
            <li><a href="#">první odkaz</a></li>
            <li><a href="#">druhý odkaz</a></li>
            <li><a href="#">třetí odkaz</a></li>
        </ul>
    </li>
    <li><a href="#">druhý odkaz</a></li>
</ul>

<script src="./js/jquery.min.js"></script>
<script src="./js/jquery.smartmenus.min.js"></script>
<script>
    $('#moje-menu').smartmenus({
        collapsibleHideFunction: function($ul, complete) {
            // provede JQuery funkci slideUp pro skrytí sub menu a až se funkce
            // dokončí, dáme o tom smartmenus vědět zavoláním funkce complete
            $ul.slideUp(1000, complete);
        }
    });
</script>

V této části jste se dozvěděli o pár nastaveních týkajících se animace otevírání a zavírání sub menu. V další části se podíváme na další nastavení týkající se sub menu.