Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][PHP]modyfikacja skryptu
shreker
post
Post #1





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 21.05.2008

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
zegarek84
post
Post #3





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


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"


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
SmokAnalog
post
Post #4





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 23:32