2016-08-01 3 views
0

Gibt es eine einfache Möglichkeit, Fx.SmoothScroll mit einer minimalen Bildschirmbreite zu initialisieren und sie unten zu deaktivieren?MooTools Fx.SmoothScroll() bei minimaler Bildschirmbreite nur

Ex, ich möchte nur die glatte Bildlauf über 400px passieren.

Warum, weil ein auf Anzeigen/Verbergen ansprechendes Menü mit der Zielposition des Scrollens verwechselt wird, so dass JS über das Ziel scrollt.

UPDATE: Ich dachte, es wäre besser, den Offset des übergehenden Elements tatsächlich zu messen, und das in glatten Blättern zu setzen. Ich habe das versucht, aber es funktioniert nicht.

  $$('#nav ul li a.menu')[0].addEvent('click', function(){ 
       window.offset = $('nav').getSize().y - 32; 
       console.log(window.offset) 
      }); 
      new Fx.SmoothScroll({ 
       offset: { 
        y: -window.offset 
       } 
      }); 

Wie würde ich den Offset bei jedem Klick aktualisieren?

Antwort

1

Nachdem ich die richtige "reaktionsschnelle" Route genommen hatte, kam ich auf diesen Code.

  var theScroll = new Fx.Scroll(window); 
      $$('#nav ul li a.menu')[0].addEvent('click', function(e){ 
       e.preventDefault(); 
       offset = $('nav').getSize().y - 32; 
       theScroll.options.offset.y = -offset; 
       theScroll.toElement($('menu'),'y'); 
      }); 
+0

Diese Lösung kann auf http://www.jessyspizza.ca/ eingesehen werden. – Chad