2013-04-25 17 views
6

Ich habe ein Bild, das eine Breite von 100% und eine Mindestbreite von 1024px hat. Ich möchte meinen "Schatten" div über dem Bild behalten und auch seine Höhe anpassen, wenn sich die Fenstergröße ändert, wodurch sich die Bildgröße proportional zur Fensterbreite ändert. Mein aktueller Code scheint nichts zu tun ...jQuery Match div Höhe mit dynamischer Bildhöhe

Vorlage ist hier http://jordan.rave5.com/tmp/ Sie werden die backgroudn-Overlay und Hintergrund-Gradient divs nicht 100% des Dokuments zu erweitern. Das ist ein anderes Problem. Lol. Ich versuche, die BG 100% Breite und Höhe zu bekommen.

jQuery:

  $('.header-img').css('height', function(imgheight) { 
       $('.image-grad').css({'height': + imgheight}); 
      }); 

CSS:

  .image-grad { 
       position: absolute; 
       z-index: 600; 
       transition: width 2s; 
       -webkit-transition: width 2s; 
       width: 100%; 
       min-height: 174px; 
       max-height: 608px; 
       background-image: url(images/header-img.png); 
       background-repeat: repeat-x; 
       background-position: bottom; 
       top: 0; 
       left: 0; 
      } 

      .header-img { 
       position: relative; 
       z-index: 500; 
       width: 100%; 
       min-width: 1024px; 
       opacity: 0.0; 
      } 

HTML:

    <img class="header-img" src="slides/fields.jpg" alt="Panoramic Fields" /> 
        <div class="image-grad"></div> 

Wie kann ich das erreichen? Dies wird Ihnen Ihr Schattenbild die Größe helfen

+0

können Sie erstellen eine Geige aus Ihrer Frage? es wird so einfacher sein – ripu1581

+0

yup eine fiedel erstellen und ich werde einfacher sein –

+0

Es ist schwer, eine fiddle zu erstellen, da es nicht richtig funktioniert (keine Größenanpassung des Fensters für die Boxen) Ich kann die Vorlage einfach auf einen Host hochladen – WASasquatch

Antwort

3

Sie die Höhe des div mit .height

Sie so etwas wie die folgenden tun können festlegen müssen:

http://jsfiddle.net/Q4DRp/

var imageGrad = $('.image-grad'), 
    image = $('.header-img'); 

function resizeDiv() { 
    imageGrad.height(image.height()); 
    imageGrad.width(image.width()); 
} 

resizeDiv(); 

$(window).resize(function() { resizeDiv(); }); 
+0

Gibt es eine Möglichkeit, die Höhe in der Anfangslast auf 324 zu setzen? Es scheint, dass die Bildhöhe beim ersten Laden die tatsächliche Bildhöhe und nicht die gestreckte Version ist. – WASasquatch

+1

@WASasquatch führen Sie die 'resizeDiv' -Funktion auf' window.onload' anstelle von 'document.ready' aus, sonst können Sie die Höhe mit' imageGrad.height (324) ' – Pete

+0

Vielen Dank Knospe, sehr geschätzt. Wenn Sie wissen, was mit meinem festen Hintergrund jetzt scrollable ist, würde das eine große Hilfe auch sein. – WASasquatch

1

:

Solution (Nicht geprüft)

$('.image-grad').css('height', $('.header-img').attr('height')); 

Um die Höhe des Bildes zu erhalten, verwenden .attr ('Höhe'). Dann, um die Höhe des div festzulegen, verwenden Sie .css ('Höhe', '999').

+0

Ich empfehle die Verwendung von outerHeight () um die Höhe zu erhalten (fügt Padding, aber keinen Rand hinzu) und setze das neue Element mit .height() - Ich würde eine vollständige Antwort schreiben, aber heute sehr beschäftigt. –

Verwandte Themen