5

stackoverflow.com zaoszczędziło mi wiele razy, ale tak naprawdę to pierwszy raz, kiedy opublikowałem pytanie. Z góry dziękuję za pomoc dla inteligentnych ludzi!Jak dynamicznie zmieniać rozmiar czcionki w ramach modów początkowych?

Próbuję użyć jquery-quickfit (https://github.com/chunksnbits/jquery-quickfit/blob/master/demo/index.html), aby automatycznie zmienić rozmiar fragmentu tekstu, który pojawia się w modach. Używam boostrap do obsługi modałów (http://twitter.github.com/bootstrap/javascript.html#modals).

W tej chwili tekst będzie poprawnie zmieniany tylko po otwarciu modala po zmianie rozmiaru okna. Kiedy się ładuje, tekst wydaje się mniejszy (nie jestem pewien, gdzie dziedziczy on ten początkowy rozmiar). Chciałbym, żeby javascript uruchomił się w momencie uruchomienia modala. Jestem pewien, że jest to oczywisty sposób na zrobienie tego, ale nie jestem wszystkim, który zna javascript.

ten sposób odpowiedni kod wygląda:

<button class="btn" data-toggle="modal" data-target="#my-modal">Open Modal</button> 

<div id="my-modal" class="modal hide fade row"> 
    <div class="modal-body"> 
    <div class="span3 modalicon"> 
     <i class="icon-image"></i> 
    </div> 
    <div class="span9" id="modaltextcontainer"> 
     <span class="modaltext">This is the content I want resized</span> 
    </div> 
    </div> 
</div> 

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script src="assets/js/bootstrap.js"></script> 
<script src="assets/js/jquery.quickfit.js"></script> 
<script type="text/javascript" charset="utf-8"> 
    $(function() { 
    $(window).on('resize', function() { 
     $('.modaltext').quickfit({ max: 40, min: 0, truncate: false });  

    }); 
    $(window).trigger('resize');  
    }); 
</script> 

<span id="meassure" style="position: absolute; left: -1000px; top: -1000px; font-size: 12px;">..........</span> 

zakładam muszę włączać bootstrap modalne pokazać wydarzenie w tym ostatnim kawałku javascript, po prostu nie może dowiedzieć się, jak to zrobić.

Bardzo dziękuję za pomoc!

Odpowiedz

0

Można powiązać Quickfit po pokażesz modal takiego:

$('#my-modal').on('show', function() { 
    $('.modaltext').quickfit({ max: 40, min: 0, truncate: false }); 
}); 
+0

Thanks kolego. To nie działało. Myślę, że sposób, w jaki skrypt quickfit oblicza nowy rozmiar czcionki, opiera się na szerokości kontenera (chociaż mógłbym się mylić). W "show" wygląda na to, że przejście css nie zostało zakończone, więc nie oblicza poprawnie rozmiaru czcionki? Zamiast tego spróbowałem "pokazany" i to wydaje się działać dobrze. Ale dwie kwestie. Występuje opóźnienie między wyświetlaniem modalnym a czcionką. Ponadto nie zmienia ona rozmiaru po zmianie rozmiaru okna. (Nawiasem mówiąc, czy istnieje sposób na łamanie linii w tych komentarzach?). – JoeyWeb

+0

Możesz spróbować użyć właściwości 'word-break: break-all; 'w kontenerze tekstowym. Spowoduje to automatyczne podzielenie tekstu na pojemnik. – Dmonix

+0

To nie trafia w to, do czego zmierzam. Aby uzyskać więcej kontekstu, tekst, który zostanie przeskalowany, będzie podobny do numeru telefonu, adresu e-mail lub adresu URL i będzie miał różne długości (niektóre osoby będą miały krótki adres e-mail, inne będą miały długi adres). Chciałbym, aby ten tekst pozostał na jednej linii i rośnie lub kurczy się, aby dopasować go do pojemnika. W ten sposób tekst będzie się wyświetlał bez względu na rozmiar okna i długość danych użytkownika. Dziękuję za pomoc w tej sprawie. – JoeyWeb

Powiązane problemy