Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]modyfikacja skryptu
Forum PHP.pl > Forum > Przedszkole
shreker
ma skrypt autoslidera w php i js

  1. //Php Function to read the images in a dir
  2. function getJsArray($dir) {
  3. $out = "";
  4. if ($dh = opendir($dir)) {
  5. while (($file = readdir($dh)) !== false)
  6. if(in_array( substr(strrchr($file, '.'), 1) , array('gif','png','jpg') )) $out.= ($out?",":"")."'".$dir.$file."'";
  7. closedir($dh);
  8. } else { die ("no dir"); }
  9. return $out;
  10. }
  11.  
  12. ?>
  13.  
  14.  
  15. <script type="text/javascript" src="jquery.js"></script>
  16. <script type="text/javascript">
  17. var gallery_current_pos = 0; // gallery counter position
  18. var gallery_idname = "container"; // id of the gallery container
  19. var gallery_timer = 5000; // 5 seconds
  20. var gallery_ar = Array(<?=getJsArray("./minislides/")?>);
  21.  
  22. function goGallery() {
  23. if (gallery_current_pos>gallery_ar.length - 1) gallery_current_pos =0;
  24. $('#'+gallery_idname).fadeTo("fast", 0 , function () {
  25. $('#'+gallery_idname).css("background-image","url(" + gallery_ar[gallery_current_pos] + ")");
  26. $('#'+gallery_idname).fadeTo("slow", 1);
  27. gallery_current_pos++;
  28. });
  29. if (gallery_ar.length>1) setTimeout( function () { goGallery(); }, gallery_timer);
  30. }
  31. </script>
  32. <style>
  33. #container {background-repeat:no-repeat;width:300px;height:200px;}
  34. </style>
  35.  
  36. <body onload="goGallery();">
  37. <div id='container'>&nbsp;</div>


mam obrazki wielkosci 800x600, potrzebuje je wyswietlic w wielkosci 300x200 ale nie "obcinane" jak to teraz robi skrypt ale przeskalowane. jak to przerobic?
SmokAnalog
Masz trzy możliwości:
  1. Skorzystać z właściwości background-size w CSS3, ale dla wielu osób to nie zadziała
  2. Przeskalować obrazek w PHP z biblioteką GD
  3. Zmienić HTML, żeby wyświetlać przeskalowany <img> zamiast tła

Najsensowniejsza jest opcja nr 2.
zegarek84
Cytat(SmokAnalog @ 22.11.2013, 15:36:04 ) *
Najsensowniejsza jest opcja nr 2.

nie koniecznie jeśli wziąć pod uwagę cache... ale właśnie, może przerobić obrazek zaoszczędzając transfer i puścić go z odpowiednimi nagłówkami by proxy i przeglądarki go zapamiętały po pierwszym wywołaniu... a często spotykamy się z transparentnym proxy ;p... lub jeszcze można by wspomnieć o CDN ale nie ma potrzeby na małą skalę ;p - ale to w zasadzie "proxy"
SmokAnalog
Zwykle tylko jakaś część obrazków jest wyświetlana w pełnej rozdzielczości, po wejściu na artykuł / wybraniu obrazka w galerii itp. Zapełnienie slidera kilkoma obrazkami o wymiarach 800x600 nie wydaje mi się dobrym pomysłem.
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.