Android-like Navigation Bar

  • HTML

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von naseweis520.

    Android-like Navigation Bar

    Huhu, ich bin gerade dabei mir ein Menü wie der NavigationDrawer auf Android nachzubauen.
    Sprich, man klickt auf ein kleines Icon, also diese paar Strichelchen und dann kommt ein Menü, was sich bis zu ca. der Hälfte des Screens zieht.

    Bisher bin ich auf folgendes Beispiel gestoßen, frage mich aber nun wie es weiter geht.

    Meine Überlegung bisher:
    - ein div mit Backgroundimage, welches beim OnClick ein Div von links nach rechts öffnet
    - das Div muss ja wahrscheinlich dann n angepassten Z Index haben, sonst passts nicht
    - joar..

    Habt Ihr weitere Ideen, Beispiele, usw.?
    Lasst es mich wissen :)

    Danke
    Polling is trolling!

    Achtung: Ich habe die komische Angewohnheit, simple Dinge zu verkomplizieren..
    Hi,

    keine Ahnung wie oder was die Navigation-Bar von Android ist. Aber anhand des Bildes wäre meine Vorgehensweise folgendermaßen:
    - Ein div entweder mit a (Hyperlinks) oder auch ein ul li mit a drin
    - Fixe Positionierung mit position: fixed;
    - An oberste Ebene mit z-index: 999;
    - Breite des div auf sagen wir 400px oder alternativ auch 20% oder 20vw mit width: 20%; oder ähnliches. Höhe auf 100% oder 100vh setzen.
    - Das div translaten sodass X-Position negativem Wert größer oder gleich der Breite entspricht, z.B. transform: translate(-20%, 0px);
    - Beim Hover eines entsprechenden Feldes (irgendwas muss ja das Anzeigen des Divs auslösen) oder eines ähnlichen Events dann dein Div auf 0px 0px translaten (also transform: translate(0px, 0px);). Das Ganze kannst du noch mit einer opacity aufhübschen.

    Sollte auch ohne Code-Beispiel verständlich und nachvollziehbar sein. Aber vllt hab ich auch die Fragestellung vollkommen missverstanden^^

    Meine Überlegung bisher ...

    ... sind Quatsch ;)


    Link :thumbup:
    Hello World

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Link“ ()

    Meine bisherigen Versuche sind leider alle gescheitert und langsam gebe ich auf, kb mehr xD..
    Warscheinlich ist der jetzige Code eh nur n Gewurschtel aus allem Gefundenen und hab auch nicht mehr den Kopf dazu noch rumzufrimeln :D.
    Spoiler anzeigen

    HTML-Quellcode

    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta name="viewport" content="width=device-width, initial-scale=1">
    6. <title></title>
    7. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    8. <script type="text/javascript">
    9. $(document).ready(function () {
    10. $('.fixed-nav-bar #menu').click(function () {
    11. $('#bla', this).toggle(); // <========== used this as a context.
    12. });
    13. });
    14. </script>
    15. <style type="text/css">
    16. .fixed-nav-bar {
    17. position: fixed;
    18. top: 0;
    19. left: 0;
    20. z-index: 9999;
    21. width: 100%;
    22. height: 50px;
    23. background-color: #00a087;
    24. }
    25. .menubutton {
    26. width: 25px;
    27. height: 32px;
    28. display: inline-block;
    29. margin: auto;
    30. position: absolute;
    31. top: 0; left: 0; bottom: 0; left: 15px;
    32. }
    33. #menu {
    34. transition: height 2s;
    35. -moz-transition: height 2s; /* Firefox 4 */
    36. -webkit-transition: height 2s; /* Safari and Chrome */
    37. -o-transition: height 2s; /* Opera */
    38. }
    39. </style>
    40. </head>
    41. <body>
    42. <nav class="fixed-nav-bar">
    43. <a id="menu" href="#"><img class="menubutton" src="imgs/menu.png" /></a>
    44. <div id="bla" style="background-color:white;width:500;height:500;"><p>testcontent sdjksdjdsksdjdkssdkdsjkjksdkjdsjdsdskjsdkjkjdsk</p></div>
    45. </nav>
    46. </body>
    47. </html>


    EDIT: Wobei eig alles von mir ist, nur das jQuery gedöhns und das transition CSS Zeug..
    Polling is trolling!

    Achtung: Ich habe die komische Angewohnheit, simple Dinge zu verkomplizieren..

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Rootbob91“ ()

    @Rootbob91
    Stell' dich ned so an, so schwer ist das nicht - mit ein bisschen recherchieren und nachdenken klappt es - außerdem hab ich oben bereits eine Vorgehensweise beschrieben.

    Hier für dich als Beispiel: Beispiel.rar
    Beweg die Maus einfach an den Bildschirmrand (links), um das Menü aufzuklappen. Und btw, kein Mensch braucht für sowas JavaScript ;)


    Link :thumbup:
    Hello World
    Die Links gucke ich mir gleich an, was ich gestern noch gemacht habe war das hier:
    Spoiler anzeigen

    HTML-Quellcode

    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta name="viewport" content="width=device-width, initial-scale=1">
    6. <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    7. <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
    8. <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css" rel="stylesheet"/>
    9. <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet"/>
    10. <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    11. <style type="text/css">
    12. .fixed-nav-bar {
    13. position: fixed;
    14. top: 0;
    15. left: 0;
    16. z-index: 9999;
    17. width: 100%;
    18. height: 50px;
    19. background-color: #00a087;
    20. }
    21. .menubutton {
    22. width: 25px;
    23. height: 32px;
    24. display: inline-block;
    25. margin: auto;
    26. position: absolute;
    27. top: 0; left: 0; bottom: 0; left: 15px;
    28. }
    29. #demo.width {
    30. height: auto;
    31. -webkit-transition: width 0.35s ease;
    32. -moz-transition: width 0.35s ease;
    33. -o-transition: width 0.35s ease;
    34. transition: width 0.35s ease;
    35. }
    36. li {
    37. list-style-type: none;
    38. }
    39. </style>
    40. </head>
    41. <body>
    42. <nav class="fixed-nav-bar">
    43. <a data-toggle="collapse" data-target="#demo"><img class="menubutton" src="imgs/menu.png" /></a>
    44. </nav>
    45. <br/>
    46. <br/>
    47. <div id="container" style="width:400px;height:100%;">
    48. <div id="demo" class="collapse in width" style="background-color:#00BC87;height:800px;">
    49. <div style="padding: 20px; overflow:hidden; width:200px;">
    50. <ul>
    51. <li><a href="http://google.de">Link Nr 1</a></li>
    52. <li><a href="http://google.de">Link Nr 2</a></li>
    53. <li><a href="http://google.de">Link Nr 3</a></li>
    54. </ul>
    55. </div>
    56. </div>
    57. </div>
    58. </body>
    59. </html>


    PS: Schwer ist das nie, wenn man weiß wie, aber da Recherchen wie "css3 expand collapse" und ähnliches bisher nur Müll gebracht haben, dann is das leider so.
    An sich ist das ja auch nichts Komplexes, aber ich hab halt nichts Großartiges gefunden und wenn man dann 3 Stunden wegen sonem eigentlich einfachem Zeugs verschwendet, dann ist das schon ziemlich fürn Popo :P.

    PPS: Danke erstmal für deinen Beispielcode @Link. Im Desktop Browser klappts, so lala auch aufm Smartphone (Galaxy Note 3), aufm iPad passiert leider gar nichts. Ich werde aber sowieso versuchen das so umzufrickeln, dass das Menü nur bei mobilen Geräten kommt und nem Menüknopf.
    Polling is trolling!

    Achtung: Ich habe die komische Angewohnheit, simple Dinge zu verkomplizieren..

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Rootbob91“ ()

    Hi,

    Ich werde aber sowieso versuchen das so umzufrickeln, dass das Menü nur bei mobilen Geräten kommt und nem Menüknopf.

    In dem Fall arbeitest du mit MediaQueries. Ist eigentlich auch nur eine Zeile Code um das zu machen, indem du bei @media screen das div.sidebar-left einfach auf display: none setzt.

    Link :thumbup:
    Hello World
    Jo, so ungefähr wa.

    HTML-Quellcode

    1. @media only screen
    2. and (min-device-width : 320px)
    3. and (max-device-width : 480px) {
    4. div.sidebar-left {
    5. display: none
    6. }

    Polling is trolling!

    Achtung: Ich habe die komische Angewohnheit, simple Dinge zu verkomplizieren..
    Gibts denn nicht andere Möglichkeiten, als dass über die Displaybreite zu regeln? Bspw. hat mein Nexus eine Bildschirmauflösung von 1920x1080 Pixeln - würde das dann nicht als Desktop-Gerät zählen? Gleichzeitig gibt es jedoch PC-Bildschirme mit einer weitaus niedrigeren Auflösung.
    Ja - DPI.
    Grüße
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!