2012-04-26 16 views
6

Ich habe eine responsive Website, wo ich ein Javascript verwende, um eine klebrige Seitenleiste zu erstellen.Kann ich Javascript basierend auf der Fenstergröße ausführen?

Ich verwende auch Medienabfragen, um von einem mehrspaltigen Layout zu einem einspaltigen Layout zu wechseln, wenn die Browsergröße weniger als 768px beträgt.

Ich muss herausfinden, wie Sie das Sticky-Menü-Skript im Einspalten-Layout deaktivieren. Im Wesentlichen brauche ich etwas wie eine Medienabfrage für die Skriptanweisung.

Dies ist der Code, den ich das Skript aktivieren bin mit:

<script> 
jQuery('#info').containedStickyScroll({ 
     duration: 0, 
     unstick: false 
    }); 
</script> 

Gibt es etwas, das ich es hinzufügen können, um sie nur auslösen, wenn das Fenster 768px breit oder breiter?

EDIT: Ich bin auf der Suche nach einer Lösung, die funktioniert, wenn der Benutzer das Fenster im Handumdrehen ändert.

+0

Auch verwandt: http://stackoverflow.com/questions/4811238/how-to-serve-up-different-javascript-files-by-browser-width/4811342#4811342 –

Antwort

6

Versuchen Sie dies.

$(function(){ 
    $(window).resize(function(){ 
     if($(this).width() >= 768){ 
      jQuery('#info').containedStickyScroll({ 
       duration: 0, 
       unstick: false 
      }); 
     } 
     }) 
     .resize();//trigger resize on page load 
}); 
+0

Sie brauchen '> =' nicht ' == '. –

+0

@ MДΓΓ БДLL Dies funktioniert basierend auf der Fenstergröße beim Laden der Seite; Gibt es eine Möglichkeit, um es funktionieren zu lassen, wenn der Benutzer die Größe der Seite nach dem Laden ändert? – artmem

+0

@ MдΓΓБДLL - Ich dachte, OP braucht nur, wenn die Breite 768 sein sollte, aber yes '> =' sollte besser sein. – ShankarSangoli

0

Versuchen Sie diesen Code:

var height = $(window).height(); //I'm assuming you mean height, you can try .width() if yo u need it 

if (height < 768) { 
    jQuery('#info').containedStickyScroll({ 
     duration: 0, 
     unstick: false 
    }); 
} 

Hoffnung, das hilft.

Verwandte Themen