2012-04-07 5 views
0

Ich denke, das ist ganz einfach, aber nach 2 Tagen des Versuchs bin ich immer noch ahnungslos. Grundsätzlich muss ich eine Reihe von Befehlen ausführen, wenn der Bildschirm über 767 Pixel breit ist und eine andere, wenn der Bildschirm unter 767 Pixel ist.Ändern Sie Javascript nach Fensterbreite

Wenn der Bildschirm breiter als 767 Pixel, ich will:

<script type="text/javascript"> 

    var jsReady = false;//for flash/js communication 

    // FLASH EMBED PART 
    var flashvars = {}; 
    var params = {}; 

    params.quality = "high"; 
    params.scale = "noscale"; 
    params.salign = "tl"; 
    params.wmode = "transparent"; 
    params.bgcolor = "#111111";//change flash bg color here 
    params.devicefont = "false"; 
    params.allowfullscreen = "true"; 
    params.allowscriptaccess = "always"; 
    var attributes = {}; 
    attributes.id = "flashPreview"; 

    swfobject.embedSWF("preview.swf", "flashPreview", "100%", "100%", "9.0.0", "expressInstall.swf", flashvars, params, attributes); 

    <!-- and much more code... --> 

</script> 

Wenn der Bildschirm schmaler als 768 Pixel, ich will laufen:

<script type="text/javascript"> 

     jQuery(function($){ 
      $.supersized({ 
       //Background image 
       slides : [ { image : 'img/some_image.jpg' } ]     
      }); 
     }); 

</script> 

Das ist richtig ... Für Desktops und Tablets möchte ich einen Videohintergrund im Vollbildmodus anzeigen. Für kleinere Bildschirme (weniger als 767 Pixel) möchte ich einen einzelnen Standbildhintergrund anzeigen.

+1

Meinst du die Breite des Fensters (Ansichtsfenster) oder die physische Bildschirm (Gerät) Breite? Wenn Sie das Ansichtsfenster meinen, verwenden Sie die Antwort von Starx. Wenn Sie das Gerät meinen, benutzen Sie Ponchas Antwort. Die Breite des Darstellungsbereichs ändert sich bei der Größenänderung. Die Gerätebreite ist konstant (kein Größenänderungs-Handler erforderlich). Siehe http://responsejs.com/labs/dimensions/ – ryanve

+0

Ja, ich meinte das Ansichtsfenster. Ich lese meine Fragen gründlich, vermisse aber immer etwas! Ich werde Starx Antwort untersuchen. Vielen Dank! – awDemo

Antwort

2

Sie können die aktuelle Größe von Fenstern mit $(window).width() abrufen und einen Handler an das Ereignis resize des Formulars anhängen. Für eine einfache Verwendung ist es so einfach wie

$(window).resize(funcion() { 
    $width = $(window).width(); 
    if($width < 767) { 
      $.supersized({ 
       //Background image 
       slides : [ { image : 'img/some_image.jpg' } ]     
      }); 
    } else { 
     //if width is greater than 767 
    } 
}); 
+0

Danke Starx! Ich bin ein Neuling, also helfe hier ein bisschen ... Ich kann den übergroßen Code hier sehen, aber wo setze ich den anderen Code ein (wenn das Ansichtsfenster> 767 ist? – awDemo

+0

@awDemo, kannst du das mit else Block machen, check mein Update – Starx

+0

Danke, funktioniert super! – awDemo

2
if(screen.width > 767) { 
    code A... 
} else { 
    code B... 
} 
+0

Dies gibt die Gerätebreite an. Das ist gut, wenn das das bedeutet. Siehe: http://responsejs.com/labs/dimensions/ – ryanve

+0

Richtig. Dies ist, was das OP schon erwähnt hat (Bildschirm). Wenn die Breite des Darstellungsbereichs gehandhabt werden soll, muss dies anders ausgeführt werden und Änderungen des Darstellungsbereichs berücksichtigen (Größenänderung). – poncha

+0

Ich meinte Viewport (Entschuldigung), aber das ist auch gut zu wissen! Vielen Dank. – awDemo

1

Da Sie JQuery verwenden können Sie verwenden:

if ($(window).width > 767) { ... } 

, dass die aktuelle Größe des Fensters zurück, nicht der max.

Verwandte Themen