Mam taką sprawę. Mam stronę, na której jest pokazy slajdów typu 'fade' w jQuery. Problem jest taki, że strona nie dopasowuje się do wysokości zdjęcia, a te muszą mieć określoną wysokość. Pytanie moje jest takie: jak ustawić kod, aby pokaz zdjęć automatycznie pokazywał zdjęcia w naturalnej wysokości zdjęcia a nie w określonej w kodzie, tzn. jeśli jedno zdjęcie ma wysokość 200px a drugie ma wysokość 250px, to aby strona się automatycznie rozszerzała z 200px do formatu 250px.

To kod wyświetlający zdjęcia:
  1. <div class="pokaz_slajdow">
  2. <div id="s1" class="pics">
  3. <?php
  4. $dir = 'obrazki';
  5. $imagesExtensions = array('jpg', 'jpeg', 'gif', 'png');
  6. $files = scandir($dir);
  7. $i = 0;
  8. foreach($files AS $file)
  9. {
  10. $fileinfo = pathinfo($file);
  11. if(is_file($dir.'/'.$file) AND in_array($fileinfo['extension'], $imagesExtensions))
  12. {
  13. $i++;
  14. if ($i == 1) echo '<img src="'.$dir.'/'.$file.'" alt="" class="active" /><br />';
  15. else echo '<img src="'.$dir.'/'.$file.'" alt=""/><br />';
  16. }
  17. }
  18. ?>
  19. </div>
  20. </div>


Dodam, że zdjęcia nie przełączają się z zadeklarowaną szybkością, co też jest niemiłym problemem, bo w pewnym momencie widać białą stronę i nie wiadomo wtedy, czy wszystko działa czy nie.

Wyświetlanie zdjęć:
  1. <script type="text/javascript">
  2. $('#s1').cycle({
  3. fx: 'fade',
  4. random: 1,
  5. delay: -4000,
  6. width: 400
  7. });
  8. </script>


To kod CSS odpowiadający za wyświetlanie zdjęć:
  1. .pics {
  2. width: 400px;/* wartości te powinny być conajmniej takie jak rozmiary zdjęć */
  3. /* szerokość elementu HTML gdzie osadzone są zdjęcia */
  4.  
  5. }
  6.  
  7. .pics img {
  8. padding: 5px;
  9. border: 1px solid #aaaaaa;
  10. /* rozmiary zdjęć */
  11. width: 400px; /* szerokość wyświetlanych zdjęć */
  12. height: 250px;
  13.  
  14. }
  15.  
  16. div.pokaz_slajdow {
  17. width: 700px;
  18. height: 150px;
  19. text-align: center;
  20. margin-left: 120px;
  21.  
  22. margin-top: -5px;
  23. }