+ Antworten
Ergebnis 1 bis 7 von 7

Thema: Navigation fixieren

  1. #1
    War schon öfter hier
    Registriert seit
    09.02.2011
    Beiträge
    146
    Bedankte sich
    45
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard Navigation fixieren

    Hallo ich möchte auf www.sc-dahenfeld.de meine Navi nach dem Scrollen oben fixieren. Dies ist leider nur mit JS möglich und ich kann nur CSS und HTML. Ich habe allerdings ein Script gefunden, das gehen sollte:

    Code:
    var nutzbar = false;
    
    if (document.body.style.scrollbar3dLightColor != undefined) //IE
      { 
        if (document.body.style.msInterpolationMode != undefined) //IE > 6 
          {
    	    nutzbar = true;
    	  }
      }
    else
      {
        nutzbar = true;
      }
    
    if (nutzbar == true)
      {  
        addEvent(window, "load", fixieren);
        addEvent(window, "resize", fixieren);
        addEvent(window, "scroll", fixieren);
      }
    
    
    var nav = document.getElementById("hornav");
    var content = document.getElementById("content");
    var html = document.getElementsByTagName("html")[0];
    
    var top_html = Math.round(html.getBoundingClientRect().top);
    var top_nav = Math.round(nav.getBoundingClientRect().top);
    var dist_html_nav = top_nav - top_html; 
    var hoehe_nav = nav.offsetHeight;
    
    function addEvent (obj, type, fn)
    {
       if (obj.addEventListener)
       {
          obj.addEventListener(type, fn, false);
       } 
       else if (obj.attachEvent) 
       {
          obj.attachEvent('on' + type, function () {return fn.call(obj, window.event);});
       }
    } 
    
    function fixieren()
    {
      var hoehe_fenster;
      var hoehe_content = content.offsetHeight;
      var scrollweite;
      
      if (hoehe_content > hoehe_nav)
      {
        window.innerHeight ? hoehe_fenster = window.innerHeight : hoehe_fenster = document.documentElement.clientHeight;
        window.getComputedStyle ? scrollweite = pageYOffset : scrollweite = document.documentElement.scrollTop;
      
        if (hoehe_nav < hoehe_fenster) 
        {
          if (nav.className == "fixiert_unten") nav.className = ""; //zuvor war sie länger als das Fenster
    	
          (scrollweite + 8 > dist_html_nav) ? nav.className = "fixiert_oben" : nav.className = "";
        }
        else   
        { 
          if (nav.className == "fixiert_oben") nav.className = ""; //zuvor war sie kürzer als das Fenster
    	
          (hoehe_fenster + scrollweite - hoehe_nav + 4 > dist_html_nav) ? nav.className = "fixiert_unten" : nav.className = "";      
        }
      }
    }
    Wenn ich das bei meinem Template in einen neuen Ordner /js/ lege funktioniert noch nichts. Ist ja glaub ich nicht mit den anderen Dateien verbunden. Wie mache ich dies?
    Ich hoffe Ihr könnt mir helfen =)

    Gruß und ein einen Guten Rutsch
    Geändert von DiiiDiii (12.01.2012 um 14:40 Uhr)

  2. #2
    kiLAa
    Gast

    Standard

    du kannst das script auch an der entsprechenden stelle in html einbinden

    <script type="text/javascript">
    dein script
    </script>
    Geändert von kiLAa (31.12.2011 um 17:46 Uhr)

  3. #3
    Wohnt hier Avatar von Harmageddon
    Registriert seit
    04.03.2010
    Ort
    Heilbronn
    Beiträge
    2.126
    Bedankte sich
    138
    Erhielt 616 Danksagungen
    in 605 Beiträgen

    Standard

    Besser wäre:
    Code:
    <script src="templates/deintemplate/js/deinscript.js" type="text/javascript"></script>
    Dann musst du natürlich schauen, wie du das Script anpassen musst, damit es bei dir funktioniert (z.B. IDs im Script an deine Menü-divs angleichen).
    Geändert von Harmageddon (01.01.2012 um 12:49 Uhr)
    Konnte ich helfen? "Danke" klicken kostet nichts und tut nicht weh.
    Problem gelöst? Ersten Post bearbeiten - Erweitert - Präfix: "Gelöst" - Danke!
    allergisch gegen grausame Rechtschreibung

  4. #4
    War schon öfter hier
    Registriert seit
    09.02.2011
    Beiträge
    146
    Bedankte sich
    45
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Das Script habe ich wie von Harmageddon eingebunden im Head bereich der index.php

    Im Script selber habe ich bisher nur das "Navigation" geändert, da es bei mir "hornav" in der CSS Datei heißt. Der Content heißt bei mir normal auch "content".
    Was genau muss ich sonst noch umändern?

  5. #5
    Wohnt hier Avatar von Harmageddon
    Registriert seit
    04.03.2010
    Ort
    Heilbronn
    Beiträge
    2.126
    Bedankte sich
    138
    Erhielt 616 Danksagungen
    in 605 Beiträgen

    Standard

    Auf der von dir oben angegebenen URL ist dieses Script anscheinend nicht eingebunden.
    Konnte ich helfen? "Danke" klicken kostet nichts und tut nicht weh.
    Problem gelöst? Ersten Post bearbeiten - Erweitert - Präfix: "Gelöst" - Danke!
    allergisch gegen grausame Rechtschreibung

  6. #6
    War schon öfter hier
    Registriert seit
    09.02.2011
    Beiträge
    146
    Bedankte sich
    45
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Zitat Zitat von Harmageddon Beitrag anzeigen
    Auf der von dir oben angegebenen URL ist dieses Script anscheinend nicht eingebunden.
    Oh stimmt, habe es ausversehen lokal versucht. Wurde geändert, also jetzt ist es auch auf www.sc-dahenfeld.de eingebunden, allerdings funktioniert es noch nicht...

  7. #7
    War schon öfter hier
    Registriert seit
    09.02.2011
    Beiträge
    146
    Bedankte sich
    45
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Ich habe jetzt viel herumprobiert, aber es will immernoch nicht... kann mir jemand behilflich sein?

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein