Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przerobienie skryptu
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
SpiJay
Cześć,

potrzebuję pomocy osób bardziej obeznanych w kwestii JS.
Korzystam ze skryptu o nazwie Supersized - Fullscreen Slideshow jQuery Plugin, cały skrypt do pobrania jest tutaj,a a demo tutaj.

Ogólnie wszystko wygląda tak:

(Wzorując się demo, które podesłałem wyżej)

Aktualny efekt jest taki:
w tle pod tekstem przesuwają się obrazy o stałej szerokości...
Do zobrazowania taki kod:
  1. <div id="obraz-w-tle">
  2. <div class="box-absolute">tresc</div>
  3. </div>


po kliknięciu "następny" pojawia się inny obraz.


A ja chcę do tego dodać:
aby obrazy przesuwały się wraz z kilkoma tekstami. Dajmy na to, niech to będzie DIV abym mógł sobie jakość to wystylizować za pomocą CSS

Do zobrazowania taki kod:
  1. <div id="obraz-w-tle">
  2. <div id="text-obraz">tresc</div>
  3. <div class="box-absolute">tresc</div>
  4. </div>


po kliknięciu "następny" pojawia się inny obraz z nowym id="text-obraz"...

Jak takie coś zrobić ?
Bardzo zależy mi na czasie, klient się niecierpliwi, a nie mam tyle czasu aby przestudiować ten język od podstaw... nerdsmiley.png

Pozdrawiam,
Patryk Szram
lukasz1985
Poniżej zrzuciłem skrypt demo i dodałem dodatkową linie

patrz szczególnie linia 53:
[JAVASCRIPT] pobierz, plaintext
  1. $('.slide-0').append('<div class="element_dodatkowy" style="z-index: 9999; background: white; position: absolute; left: 10px; top: 20px;">Slide 0</div>')
[JAVASCRIPT] pobierz, plaintext



$('.slide-n').append('treść dla elementu n')

Musisz wiedzieć ile masz slajdów, wtedy będzie możliwe dostawienie treści - jest div o klasie "element_dodatkowy". Ma styl inline ale możesz sobie go przenieść do pliku .css, pozostaw tylko bez zmian atrybuty z-index i position, muszą zostać też top i left. Jest to jedyne szybkie rozwiązanie.

Tutaj całość w komplecie:

[JAVASCRIPT] pobierz, plaintext
  1.  
  2. jQuery(function($){
  3.  
  4. $.supersized({
  5.  
  6. // Functionality
  7. slideshow : 1, // Slideshow on/off
  8. autoplay : 0, // Slideshow starts playing automatically
  9. start_slide : 1, // Start slide (0 is random)
  10. stop_loop : 0, // Pauses slideshow on last slide
  11. random : 0, // Randomize slide order (Ignores start slide)
  12. slide_interval : 3000, // Length between transitions
  13. transition : 6, // 0-None, 1-Fade, 2-Slide Top, 3-Slide Right, 4-Slide Bottom, 5-Slide Left, 6-Carousel Right, 7-Carousel Left
  14. transition_speed : 1000, // Speed of transition
  15. new_window : 1, // Image links open in new window/tab
  16. pause_hover : 0, // Pause slideshow on hover
  17. keyboard_nav : 1, // Keyboard navigation on/off
  18. performance : 1, // 0-Normal, 1-Hybrid speed/quality, 2-Optimizes image quality, 3-Optimizes transition speed // (Only works for Firefox/IE, not Webkit)
  19. image_protect : 1, // Disables image dragging and right click with Javascript
  20.  
  21. // Size & Position
  22. min_width : 0, // Min width allowed (in pixels)
  23. min_height : 0, // Min height allowed (in pixels)
  24. vertical_center : 1, // Vertically center background
  25. horizontal_center : 1, // Horizontally center background
  26. fit_always : 0, // Image will never exceed browser width or height (Ignores min. dimensions)
  27. fit_portrait : 1, // Portrait images will not exceed browser height
  28. fit_landscape : 0, // Landscape images will not exceed browser width
  29.  
  30. // Components
  31. slide_links : 'blank', // Individual links for each slide (Options: false, 'num', 'name', 'blank')
  32. thumb_links : 1, // Individual thumb links for each slide
  33. thumbnail_navigation : 0, // Thumbnail navigation
  34. slides : [ // Slideshow Images
  35. {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/kazvan-1.jpg', title : 'Image Credit: Maria Kazvan', thumb : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/thumbs/kazvan-1.jpg', url : 'http://www.nonsensesociety.com/2011/04/maria-kazvan/', id: 1},
  36. {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/kazvan-2.jpg', title : 'Image Credit: Maria Kazvan', thumb : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/thumbs/kazvan-2.jpg', url : 'http://www.nonsensesociety.com/2011/04/maria-kazvan/'},
  37. {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/kazvan-3.jpg', title : 'Image Credit: Maria Kazvan', thumb : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/thumbs/kazvan-3.jpg', url : 'http://www.nonsensesociety.com/2011/04/maria-kazvan/'},
  38. {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/wojno-1.jpg', title : 'Image Credit: Colin Wojno', thumb : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/thumbs/wojno-1.jpg', url : 'http://www.nonsensesociety.com/2011/03/colin/'},
  39. {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/wojno-2.jpg', title : 'Image Credit: Colin Wojno', thumb : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/thumbs/wojno-2.jpg', url : 'http://www.nonsensesociety.com/2011/03/colin/'},
  40. {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/wojno-3.jpg', title : 'Image Credit: Colin Wojno', thumb : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/thumbs/wojno-3.jpg', url : 'http://www.nonsensesociety.com/2011/03/colin/'},
  41. {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/shaden-1.jpg', title : 'Image Credit: Brooke Shaden', thumb : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/thumbs/shaden-1.jpg', url : 'http://www.nonsensesociety.com/2011/06/brooke-shaden/'},
  42. {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/shaden-2.jpg', title : 'Image Credit: Brooke Shaden', thumb : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/thumbs/shaden-2.jpg', url : 'http://www.nonsensesociety.com/2011/06/brooke-shaden/'},
  43. {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/shaden-3.jpg', title : 'Image Credit: Brooke Shaden', thumb : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/thumbs/shaden-3.jpg', url : 'http://www.nonsensesociety.com/2011/06/brooke-shaden/'}
  44. ],
  45.  
  46. // Theme Options
  47. progress_bar : 1, // Timer for each slide
  48. mouse_scrub : 0
  49.  
  50. });
  51.  
  52.  
  53. $('.slide-0').append('<div class="element_dodatkowy" style="z-index: 9999; background: white; position: absolute; left: 10px; top: 20px;">Slide 0</div>')
  54. });
  55.  
[JAVASCRIPT] pobierz, plaintext
SpiJay
Bardzo serdecznie dziękuję za pomoc.

Ratujesz mi skórę, dzięki exclamation.gif!

Kurcze, za szybko powiedziałem hop...

Wyświetlają mi się tylko 2 slide'y.. Każdy kolejny już się nie wyświetla (czarne tło), coś jest nie tak? :/
lukasz1985
Postaram się w ciągu godziny dać odpowiedź

[JAVASCRIPT] pobierz, plaintext
  1.  
  2.  
  3. jQuery(function($){
  4.  
  5. $.supersized({
  6.  
  7. // Functionality
  8. slideshow : 1, // Slideshow on/off
  9. autoplay : 0, // Slideshow starts playing automatically
  10. start_slide : 1, // Start slide (0 is random)
  11. stop_loop : 0, // Pauses slideshow on last slide
  12. random : 0, // Randomize slide order (Ignores start slide)
  13. slide_interval : 3000, // Length between transitions
  14. transition : 6, // 0-None, 1-Fade, 2-Slide Top, 3-Slide Right, 4-Slide Bottom, 5-Slide Left, 6-Carousel Right, 7-Carousel Left
  15. transition_speed : 1000, // Speed of transition
  16. new_window : 1, // Image links open in new window/tab
  17. pause_hover : 0, // Pause slideshow on hover
  18. keyboard_nav : 1, // Keyboard navigation on/off
  19. performance : 1, // 0-Normal, 1-Hybrid speed/quality, 2-Optimizes image quality, 3-Optimizes transition speed // (Only works for Firefox/IE, not Webkit)
  20. image_protect : 1, // Disables image dragging and right click with Javascript
  21.  
  22. // Size & Position
  23. min_width : 0, // Min width allowed (in pixels)
  24. min_height : 0, // Min height allowed (in pixels)
  25. vertical_center : 1, // Vertically center background
  26. horizontal_center : 1, // Horizontally center background
  27. fit_always : 0, // Image will never exceed browser width or height (Ignores min. dimensions)
  28. fit_portrait : 1, // Portrait images will not exceed browser height
  29. fit_landscape : 0, // Landscape images will not exceed browser width
  30.  
  31. // Components
  32. slide_links : 'blank', // Individual links for each slide (Options: false, 'num', 'name', 'blank')
  33. thumb_links : 1, // Individual thumb links for each slide
  34. thumbnail_navigation : 0, // Thumbnail navigation
  35. slides : [ // Slideshow Images
  36. {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/kazvan-1.jpg', title : 'Image Credit: Maria Kazvan', thumb : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/thumbs/kazvan-1.jpg', url : 'http://www.nonsensesociety.com/2011/04/maria-kazvan/', id: 1},
  37. {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/kazvan-2.jpg', title : 'Image Credit: Maria Kazvan', thumb : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/thumbs/kazvan-2.jpg', url : 'http://www.nonsensesociety.com/2011/04/maria-kazvan/'},
  38. {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/kazvan-3.jpg', title : 'Image Credit: Maria Kazvan', thumb : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/thumbs/kazvan-3.jpg', url : 'http://www.nonsensesociety.com/2011/04/maria-kazvan/'},
  39. {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/wojno-1.jpg', title : 'Image Credit: Colin Wojno', thumb : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/thumbs/wojno-1.jpg', url : 'http://www.nonsensesociety.com/2011/03/colin/'},
  40. {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/wojno-2.jpg', title : 'Image Credit: Colin Wojno', thumb : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/thumbs/wojno-2.jpg', url : 'http://www.nonsensesociety.com/2011/03/colin/'},
  41. {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/wojno-3.jpg', title : 'Image Credit: Colin Wojno', thumb : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/thumbs/wojno-3.jpg', url : 'http://www.nonsensesociety.com/2011/03/colin/'},
  42. {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/shaden-1.jpg', title : 'Image Credit: Brooke Shaden', thumb : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/thumbs/shaden-1.jpg', url : 'http://www.nonsensesociety.com/2011/06/brooke-shaden/'},
  43. {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/shaden-2.jpg', title : 'Image Credit: Brooke Shaden', thumb : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/thumbs/shaden-2.jpg', url : 'http://www.nonsensesociety.com/2011/06/brooke-shaden/'},
  44. {image : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/slides/shaden-3.jpg', title : 'Image Credit: Brooke Shaden', thumb : 'http://buildinternet.s3.amazonaws.com/projects/supersized/3.2/thumbs/shaden-3.jpg', url : 'http://www.nonsensesociety.com/2011/06/brooke-shaden/'}
  45. ],
  46.  
  47. // Theme Options
  48. progress_bar : 1, // Timer for each slide
  49. mouse_scrub : 0
  50.  
  51. });
  52.  
  53.  
  54. theme.beforeAnimation = function (direction) {
  55. var slajdDocelowy = vars.current_slide
  56.  
  57. if (slajdDocelowy == 0) {
  58. $('.slide-' + slajdDocelowy ).append('<div class="element_dodatkowy" style="z-index: 9999; background: white; position: absolute; left: 10px; top: 20px;">Treść dla slajdu 0</div>')
  59. } else if (slajdDocelowy == 1) {
  60. $('.slide-' + slajdDocelowy ).append('<div class="element_dodatkowy" style="z-index: 9999; background: white; position: absolute; left: 10px; top: 20px;">Treść dla slajdu PIERWSZEGO</div>')
  61. } else if (slajdDocelowy == 2) {
  62. $('.slide-' + slajdDocelowy ).append('<div class="element_dodatkowy" style="z-index: 9999; background: white; position: absolute; left: 10px; top: 20px;">Treść dla slajdu Drugiego</div>')
  63. } else if (slajdDocelowy == 3) {
  64. $('.slide-' + slajdDocelowy ).append('<div class="element_dodatkowy" style="z-index: 9999; background: white; position: absolute; left: 10px; top: 20px;">Treść dla slajdu Trzeciego </div>')
  65. }
  66.  
  67. /*
  68.   *
  69.   * Można też tak:
  70.   *
  71.   switch (slajdDocelowy) {
  72.   case 0:
  73.   $('.slide-' + slajdDocelowy ).append('<div class="element_dodatkowy" style="z-index: 9999; background: white; position: absolute; left: 10px; top: 20px;">Treść dla slajdu 0</div>')
  74.   break;
  75.   case 1:
  76.   $('.slide-' + slajdDocelowy ).append('<div class="element_dodatkowy" style="z-index: 9999; background: white; position: absolute; left: 10px; top: 20px;">Treść dla slajdu PIERWSZEGO</div>')
  77.   break;
  78.   }
  79.   */
  80.  
  81. }
  82.  
  83.  
  84. });
  85.  
  86.  
[JAVASCRIPT] pobierz, plaintext



Teraz działa
SpiJay
Faktycznie, teraz prawie jest ok.
Tylko jeszcze fajnie by było gdyby się zapętlało, bo obecnie slajdy lecą dalej.
Mam 6 i po ostatnim znowu jest czarny ekran.

Jakiś pomysł ?

+ pomógł

Na czarnym pasku na dole służącym do nawigacji, nie pokazują się kolejne liczby względem obrazów...


Jakieś rady ?
lukasz1985
Ten kod powinien poprawić błąd. Powinien się znajdować od linii 54.

[JAVASCRIPT] pobierz, plaintext
  1. var superBeforeAnimation = theme.beforeAnimation
  2. theme.beforeAnimation = function (direction) {
  3. superBeforeAnimation(direction)
  4. var slajdDocelowy = vars.current_slide
  5.  
  6. if (slajdDocelowy == 0) {
  7. $('.slide-' + slajdDocelowy ).append('<div class="element_dodatkowy" style="z-index: 9999; background: white; position: absolute; left: 10px; top: 20px;">Treść dla slajdu 0</div>')
  8. } else if (slajdDocelowy == 1) {
  9. $('.slide-' + slajdDocelowy ).append('<div class="element_dodatkowy" style="z-index: 9999; background: white; position: absolute; left: 10px; top: 20px;">Treść dla slajdu PIERWSZEGO</div>')
  10. } else if (slajdDocelowy == 2) {
  11. $('.slide-' + slajdDocelowy ).append('<div class="element_dodatkowy" style="z-index: 9999; background: white; position: absolute; left: 10px; top: 20px;">Treść dla slajdu Drugiego</div>')
  12. } else if (slajdDocelowy == 3) {
  13. $('.slide-' + slajdDocelowy ).append('<div class="element_dodatkowy" style="z-index: 9999; background: white; position: absolute; left: 10px; top: 20px;">Treść dla slajdu Trzeciego </div>')
  14. }
  15. }
[JAVASCRIPT] pobierz, plaintext
SpiJay
lukaszu, chciałbym abyś coś zobaczył...

Efekt jest tutaj: http://iam4u-server.home.pl/antybank-demo/

Zwróć uwagę na teksty, a dokładniej cień pod nimi, w momencie gdy cofasz slajda, lub w momencie gdy dochodzi do ich zapętlania (zaraz po ostatnim slajdzie),
tekst nachodzi na siebie ponownie (widać to po większym natężeniu cienia pod napisame [-> Mozilla]). Z tego co zdążyłem wywnioskować z kodu, to dodaje się DIV w momencie ukazania się slajdu, ale wydaje mi się, że w momencie ukazywania następnego slajda, poprzednie teksty w divach nie są usuwane. Mylę się ?
Dasz jakąś radę na to ?

Pozdrawiam,
Patryk
lukasz1985
Rzeczywiście. Chodzi o to, że przy każdym przejściu tworzony jest dodatkowy element.

Wstaw:
[JAVASCRIPT] pobierz, plaintext
  1. var wyswietlone = [];
[JAVASCRIPT] pobierz, plaintext


i

[JAVASCRIPT] pobierz, plaintext
  1.  
  2. if (wyswietlone.indexOf(slajdDocelowy) != -1) {
  3. return
  4. } else {
  5. wyswietlone.push(slajdDocelowy)
  6. }
[JAVASCRIPT] pobierz, plaintext



według wzorca:

[JAVASCRIPT] pobierz, plaintext
  1. var superBeforeAnimation = theme.beforeAnimation
  2. var wyswietlone = [];
  3. theme.beforeAnimation = function (direction) {
  4.  
  5.  
  6. superBeforeAnimation(direction)
  7. var slajdDocelowy = vars.current_slide
  8. if (wyswietlone.indexOf(slajdDocelowy) != -1) {
  9. return
  10. } else {
  11. wyswietlone.push(slajdDocelowy)
  12. }
  13.  
  14. if (slajdDocelowy == 0) {
  15. $('.slide-' + slajdDocelowy ).append('<div class="element_dodatkowy" style="z-index: 9999; background: white; position: absolute; left: 10px; top: 20px;">Treść dla slajdu 0</div>')
  16. } else if (slajdDocelowy == 1) {
  17. $('.slide-' + slajdDocelowy ).append('<div class="element_dodatkowy" style="z-index: 9999; background: white; position: absolute; left: 10px; top: 20px;">Treść dla slajdu PIERWSZEGO</div>')
  18. } else if (slajdDocelowy == 2) {
  19. $('.slide-' + slajdDocelowy ).append('<div class="element_dodatkowy" style="z-index: 9999; background: white; position: absolute; left: 10px; top: 20px;">Treść dla slajdu Drugiego</div>')
  20. } else if (slajdDocelowy == 3) {
  21. $('.slide-' + slajdDocelowy ).append('<div class="element_dodatkowy" style="z-index: 9999; background: white; position: absolute; left: 10px; top: 20px;">Treść dla slajdu Trzeciego </div>')
  22. }
  23.  
  24. }
[JAVASCRIPT] pobierz, plaintext



powinno działać.

Jeśli IE będzie miał z tym problemy to na samej górze skryptu wstaw kod:

[JAVASCRIPT] pobierz, plaintext
  1.  
  2. if (!Array.prototype.indexOf)
  3. {
  4. Array.prototype.indexOf = function(elt /*, from*/)
  5. {
  6. var len = this.length;
  7.  
  8. var from = Number(arguments[1]) || 0;
  9. from = (from < 0)
  10. ? Math.ceil(from)
  11. : Math.floor(from);
  12. if (from < 0)
  13. from += len;
  14.  
  15. for (; from < len; from++)
  16. {
  17. if (from in this &&
  18. this[from] === elt)
  19. return from;
  20. }
  21. return -1;
  22. };
  23. }
[JAVASCRIPT] pobierz, plaintext
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.