Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] [jQuery] Zmiana wysokości div-a
Forum PHP.pl > Forum > Przedszkole
muumiin
Witam!
Mam dwa div-y, które mają być elastyczne - wysokość zależna od zawartości, ale oba div-y mają być cały czas równej wysokości (tzn jeśli pierwszy div się rozciągnie, bo jest więcej tekstu, drugi też powinien się tak samo rozciągnąć.

Napisałam coś, co myślałam, że będzie poprawne, bo wzorowałam się na czymś, co działało, ale nie działa... Mój kod:

  1. $(document).ready(function (){
  2. $(window).resize(function (){
  3. $('.div2').css({
  4. height: ($('.div1').height()
  5. });
  6. });
  7. $(window).resize();
  8. });


Fajnie, żeby przeliczało wysokość przy każdym załadowaniu strony oraz przy zmniejszaniu okna. Zwykle div1 będzie większy od div2, więc głównie zależy mi na tym, żeby w tą stronę to działało
rad11
http://jsfiddle.net/56m2tL80/

Nie wiem czy o taki efekt chodzi
muumiin
u mnie to coś nie chciało działać wink.gif

ale coś takiego zadziałało:

  1. $(document).ready(function() {
  2. height2 = $('.div2').height()
  3. $('.div1').css({
  4. height: height2,
  5. });
  6. });


Ale trochę się miesza gdy zaczynam zwężać pole przeglądarki - za sprawą css-a pierwszy div się zmniejsza, a drugi zostaje taki sam. Jak to można poprawić? Żeby ta funkcja uruchamiała się za każdym razem, gdy zmienia się szerokość okna przeglądarki?
rad11
  1. $(document).ready(function() {
  2. height2 = $('.div1').height();
  3. width2 = $('.div1').width();
  4. $('.div2').css({
  5. height: height2,
  6. width: width2
  7. });
  8.  
  9. $( window ).resize(function() {
  10. height2 = $('.div1').height();
  11. width2 = $('.div1').width();
  12. $('.div2').css({
  13. height: height2,
  14. width: width2
  15. });
  16. });
  17. });


  1. <div class="div1" style="background: red; width: 50%; height: 50%;">
  2.  
  3. </div>
  4. <div class="div2" style="background: black;">
  5.  
  6. </div>
muumiin
rad11, Ty to jesteś spec od jquery, już kolejny mój problem rozwiązujesz smile.gif

Jeszcze jeden problem:
Jak to jest możliwe, że przy ładowaniu wyświetla za duży div2, a przy zmienianiu rozmiaru okna wszystko jest idealnie równe? a kod identyczny dla obu opcji sad.gif teoretycznie pomaga, gdy w pierszym przypadku odejmę trochę pixeli, ale na każdej rozdzielczości (mam css dla 5 rozdzielczości) trzeba by odjąć inną ilość pixeli. A margin, padding i border mam ustawiony globalnie, próbowałam też zamieniać height() na innerHeight() i outerHeight(), z wszystkimi tymi opcjami ten sam problem sad.gif
  1. $(document).ready(function() {
  2. height2 = $('.div2').height();
  3. $('.div1').css({
  4. height: height2
  5. });
  6. $( window ).resize(function() {
  7. height2 = $('.div2').height();
  8. $('.div1').css({
  9. height: height2
  10. });
  11. });
  12. });
rad11
Moze sie tak dziac bo jeden element jest w % a drugi w px choc teoretycznie js powinien sobie to sam dobrze przeliczyc hmmm....

sproboj tak i powiedz czy poprawilo sie:
  1. $(document).ready(function() {
  2.  
  3. height2 = parseInt($('.div2').height());
  4. $('.div1').css({
  5. height: height2+'%'
  6. });
  7.  
  8. $( window ).resize(function() {
  9. height2 = parseInt($('.div2').height());
  10. $('.div1').css({
  11. height: height2+'%'
  12. });
  13. });
  14. });
muumiin
to w ogóle nie chce działać... Kompletnie nie mam pojęcia o co chodzi - ten poprzedni kod działał jak trzeba tylko w części po $(window).resize. Ta pierwsza część powiększała diva aż za bardzo sad.gif

ok, mam to:

  1. $(document).ready(function() {
  2. $(window).load(function () {
  3. height2 = $('.faq').height();
  4. $('.security').css({
  5. height: height2
  6. });
  7. });
  8. $( window ).resize(function() {
  9. height2 = $('.faq').height();
  10. $('.security').css({
  11. height: height2
  12. });
  13. });
  14. });


jak na razie działa wink.gif

rad11, dzięki wielkie za cierpliwość do mnie, należałoby postawić Ci jakieś piwko wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.