Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmiana wartości po zmianie szerokości strony
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
piotrex41
Witam,

Dziś zwracam się do was z ogromną prośbą o pomoc przy skrypcie który nie działa jak powinien smile.gif

Opisuję problem:
Koduję stronę metodą responsywną (zmienia się wygląd strony zależnie od szerokości ekranu, więc na różnych urządzeniach mobilnych strona wygląda inaczej) i napotkałem następujący problem: Mam skrypt, który ma mi zwijać/rozwijać DIV (coś jak opis filmików na YouTube). Początkowo DIV jest zwinięty, ale po kliknięciu w button ma się rozwinąć lub zwinąć. I to jest dość proste, ale problem mam przy zmianie układu urządzenia mobilnego.

Przykładowo:
Odpalam stronę na tablecie w pozycji poziomej, DIV się ładnie zwija i rozwija, ale jak przekręcę tablet do pionu, to tekst się zwęża, więc jest go "więcej linijek" a zatem i DIV powinien być "wyższy". Niestety skrypt pokazuje mi po rozwinięciu tylko tyle DIVa ile było potrzebne aby pokazać całość na pozycji poziomej (czyli rozwija do zczytanej wartości przy załadowaniu strony) więc DIV jest za krótki i ucina tekst.
Sytuacja odwrotna - odpalam stronę na tablecie w pozycji pionowej, obracam do poziomej i DIV nagle staje się za "wysoki" przez co poniżej tekstu jest jeszcze kawałek pustej przestrzeni.

Prośba:
Bardzo proszę o pomoc w zmodyfikowaniu poniższego mojego kodu, aby działał on zgodnie z moimi wymaganiami smile.gif Chodzi o to by przy zmianie szerokości okna przeglądarki, zmieniała się wartość zmiennej, która przetrzymuje wysokość całego DIVa.

Kod
    // ROZWIŃ / ZWIŃ
    var slideHeight = 35; //wysokość rozwiniętego DIVa
    var defHeight = $('div.descryption').height(); // wysokość całego DIVa
    var more = document.getElementById('more'); // wykrycie buttona do rozwijania/zwijania

    if (defHeight >= slideHeight)
    {
        $('div.descryption').css('height' , slideHeight + 'px');
        more.innerHTML = 'więcej';
        
        $('a#more').click(function()
        {
            var curHeight = $('div.descryption').height();
            if(curHeight == slideHeight)
            {
                $('div.descryption').animate(
                {
                  height: defHeight
                }, 'normal');
                more.innerHTML = 'mniej';
            }
            else
            {
                $('div.descryption').animate(
                {
                  height: slideHeight
                }, 'normal');
                more.innerHTML = 'więcej';
            }
            return false;
        });
    }
lukasz1985
http://jsfiddle.net/udSkM/1/
piotrex41
Po lekkich modyfikacjach działa idealnie. Ogromne dzięki smile.gif Oczywiście leci "pomógł" smile.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.