Ergebnis 1 bis 4 von 4

Thema: Contao 4.7.1 - jQuery - OnePageNav Template funzt nicht wie gewünscht

  1. #1
    Contao-Fan Avatar von Seefahrer
    Registriert seit
    20.12.2012.
    Ort
    Wurster Nordseeküste
    Beiträge
    276

    Standard Contao 4.7.1 - jQuery - OnePageNav Template funzt nicht wie gewünscht

    Moin,

    ich habe da mal eine Frage an die jQuery->Experten:

    In meinem OnePageNav Template der Seite: https://www.luetten-dieks-carlito.eu möchte ich gerne einen ScrollOffset "$('#header-bar').height()" verwenden, der nur beim ScrollUp greift, bei ScrollDown soll der scrollOffset: 0 sein.

    Dazu habe ich nachfolgendes Template erstellt.

    Leider ist der Wert von "var offSet" außerhalb der Function "$(window).on('scroll', function () { ..." offenbar undefiniert, so dass in der Function "$('#nav').onePageNav({..." der Wert für "scrollOffset" ebenfalls undefiniert ist und als scrollOffset immer 0 gesetzt wird.

    "Eigentlich" ist "var offSet" doch eine globale Variable, oder ???? Bitte um Hilfe, wo mein Denkfehler liegt ...

    Code:
    <script src="<?= TL_FILES_URL ?>files/freestyle-fx/js/jquery.nav.min.js"></script>
    <script>
    jQuery(function($) { 
     	
     	var iScrollPos = 0;
     	var offSet = 0;
    	
    	$(window).on('scroll', function () {
    	    var iCurScrollPos = $(this).scrollTop();
    	    if (iCurScrollPos > iScrollPos) {
    	    	offSet = 0
    	    } else {
    	    	offSet =  $('#header-bar').height()
    		}
        	iScrollPos = iCurScrollPos;
    	});
    	
        $('#nav').onePageNav({
            currentClass: 'active',
            scrollSpeed: 1000,
            changeHash: true,
            easing: 'easeInOutCirc',
    	scrollOffset: offSet
        });
    });
    </script>

  2. #2
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.945

    Standard

    Zitat Zitat von Seefahrer Beitrag anzeigen
    "Eigentlich" ist "var offSet" doch eine globale Variable, oder ????

    Ich würde sagen, nein. Vgl. dazu (lokale Variabe innerhalb der function())
    Code:
    <script>
    jQuery(function($) { 
     	
     	var iScrollPos = 0;
     	var offSet = 0;
    	// ...
    vs. (außerhalb der function())

    Code:
    <script>
    var iScrollPos = 0;
    var offSet = 0;
    
    jQuery(function($) { 
     	
    	// ...
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  3. #3
    Contao-Fan Avatar von Seefahrer
    Registriert seit
    20.12.2012.
    Ort
    Wurster Nordseeküste
    Beiträge
    276

    Standard

    Danke @fiedsch

    klappt leider auch nicht, hatte ich bereits zuvor versucht, die Variable ist weiterhin offenbar undefined ...

  4. #4
    Contao-Fan Avatar von Seefahrer
    Registriert seit
    20.12.2012.
    Ort
    Wurster Nordseeküste
    Beiträge
    276

    Standard

    Habe das Template jetzt wie folgt verändert:

    Code:
    <script src="<?= TL_FILES_URL ?>files/freestyle-fx/js/jquery.nav.min.js"></script>
    <script>
    
    var iScrollPos = 0;
    var offSet = 0;
    
    jQuery(function($) { 
    
    	$(window).on('scroll', function () {
    	    var iCurScrollPos = $(this).scrollTop();
    	    offSet = (iCurScrollPos > iScrollPos) ? 0 : $('#header-bar').height();
        	    iScrollPos = iCurScrollPos;
    	});
    
    	$('#nav').onePageNav({
               currentClass: 'active',
               scrollSpeed: 1000,
               changeHash: true,
               easing: 'easeInOutCirc',
    	   scrollOffset: offSet
            });
    
    });
    </script>
    In der "$(window).on('scroll', function () { ..." besteht kein Zugriff auf die Variable "offSet", d.h. es wird kein Wert zugewiesen, so dass in der "$('#nav').onePageNav({ ..." nur der in der Variablendeklaration zugewiesene Wert übernommen wird....

    Strange, aber wahrscheinlich habe ich da ein grundsätzliches Verständnisproblem mit JS/jQuery ...

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

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