Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Przewijanie
Forum PHP.pl > Forum > Przedszkole
MateuszS
Witam.

Chce zrobic przewijanie tytulow
Mam np tytul pl i chce przewinac w prawo na tytul en i w prawo na tytul de, oczywiscie jest tez powrot. Jezeli mam tytul pl i klikam ">" na tytul en to tylul pl znika, takie proste cos,

mam do tego jakis skrypt swoj ale powinno dzialac a nie dziala, z logicznego punktu widzenia,

[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. var page = 1;
  3. function next_title() {
  4. var new_page = page + 1;
  5. document.getElementById('div'+page).style.display = 'none';
  6. document.getElementById('div'+new_page).style.display = 'block';
  7. document.getElementById('divv'+page).style.display = 'none'; // a to w ogole nie dziala nie wiem czemu mimo ze mam div o takim id
  8. document.getElementById('divv'+new_page).style.display = 'block'; // analogicznie to tez nie dziala
  9. page++;
  10. }
  11.  
  12. function prev_title() {
  13.  
  14. if(document.getElementById('div1').style.display == 'block') { var prev = 1; }
  15. if(document.getElementById('div2').style.display == 'block') { var prev = 2; }
  16. if(document.getElementById('div3').style.display == 'block') { var prev = 3; }
  17.  
  18. var prev_page = prev - 1;
  19. document.getElementById('div'+prev).style.display == 'none';
  20. document.getElementById('div'+prev_page).style.display == 'block';
  21. prev--;
  22. }
  23.  
  24. </script>
[JAVASCRIPT] pobierz, plaintext
kamil4u
Przygotuj stronę testową(prostą stronę z HTML i JS) i napisz jakie pojawiają się błędy(a nie 'nie działa'), wtedy będziemy wstanie pomóc - na pierwszy rzut oka wszystko wygląda ok smile.gif

Pozdrawiam
MateuszS
http://mateuszs.pl/test/index.php gdy damy do przodu, potem do tylu i znowu to przodu na angielski, to sie ustawienie zepsuje, czyli cos jest nie tak z kodem,


poza tym to trzeba classowa alternatywe dla getElementById



chcialem tak zrobic

  1. function next_title() {
  2. if(document.getElementById('div1').style.display == 'block') { var page = 1; }
  3. if(document.getElementById('div2').style.display == 'block') { var page = 2; }
  4. if(document.getElementById('div3').style.display == 'block') { var page = 3; }
  5.  
  6. var new_page = page + 1;
  7. document.getElementById('div'+page).style.display = 'none';
  8. document.getElementById('div'+new_page).style.display = 'block';
  9. document.getElementById('divv'+page).style.display = 'none';
  10. document.getElementById('divv'+new_page).style.display = 'block';
  11. page++;
  12. if(page == 3) { page=1; }
  13. }
  14.  
  15. function prev_title() {
  16.  
  17. if(document.getElementById('div1').style.display == 'block') { var prev = 1; }
  18. if(document.getElementById('div2').style.display == 'block') { var prev = 2; }
  19. if(document.getElementById('div3').style.display == 'block') { var prev = 3; }
  20.  
  21. var prev_page = prev - 1;
  22. document.getElementById('div'+prev).style.display = 'none';
  23.  
  24. if(prev!=1) {
  25. document.getElementById('div'+prev_page).style.display = 'block';
  26. prev--;
  27. }
  28. }
  29.  
  30. </script>


ale gdy dalem

if(document.getElementById('div1').style.display == 'block') { var page = 1; }
if(document.getElementById('div2').style.display == 'block') { var page = 2; }
if(document.getElementById('div3').style.display == 'block') { var page = 3; }

to next_title() przestala dzialac, a przeciez jak dalem w prev_title() to dziala...
ziqzaq
Przykład funkcji next_title():
[JAVASCRIPT] pobierz, plaintext
  1. var page = 1;
  2. var new_page = 0;
  3. function next_title() {
  4. new_page = page + 1;
  5. if ( new_page > 3 ) new_page = 1;
  6. toggle_title(page, new_page); // zmiane display wywalilem do osobnej funkcji
  7. page = new_page;
  8. }
[JAVASCRIPT] pobierz, plaintext

Funkcja prev_title() jest na tej podobnej zasadzie co next_title(), więc nie powinieneś mieć problemów z napisaniem jej.
toggle_title() ukrywa/wyświetla te div-y, kod masz już praktycznie napisany - możesz oczywiście nie używać tej funkcji.
Powinieneś bez problemu dopisać sobie brakujący kod. winksmiley.jpg
Pozdr.
MateuszS
dzieki, ziqzaq a to dla potomnych

  1. <script type="text/javascript">
  2.  
  3. var page = 1;
  4. var new_page = 0;
  5. function toggle_title(page, new_page) {
  6. document.getElementById('div'+page).style.display = 'none';
  7. document.getElementById('divv'+page).style.display = 'none';
  8.  
  9. document.getElementById('div'+new_page).style.display = 'block';
  10. document.getElementById('divv'+new_page).style.display = 'block';
  11. }
  12.  
  13. function next_title() {
  14. new_page = page + 1;
  15. if ( new_page > 3 ) new_page = 1;
  16. toggle_title(page, new_page); // zmiane display wywalilem do osobnej funkcji
  17. page = new_page;
  18. }
  19.  
  20. function prev_title() {
  21.  
  22. if(document.getElementById('div1').style.display == 'block') { var prev = 1; }
  23. if(document.getElementById('div2').style.display == 'block') { var prev = 2; }
  24. if(document.getElementById('div3').style.display == 'block') { var prev = 3; }
  25.  
  26. var prev_page = prev - 1;
  27. document.getElementById('div'+prev).style.display = 'none';
  28. document.getElementById('divv'+prev).style.display = 'none';
  29. if(prev!=1) {
  30. document.getElementById('div'+prev_page).style.display = 'block';
  31. document.getElementById('divv'+prev_page).style.display = 'block';
  32. prev--;
  33. }
  34. }
  35.  
  36. </script>



i kolejne pytanie, pomoze ktos z prototypem funkcji document.getelementbyclass? trzeba mi to do while w php. A te z neta mi nie dzialaja jezeli mieliscie stycznosc z czyms takim to dajcie znac
ziqzaq
Mateusz co do twojego kodu.
Po co tyle dodatkowego kodu?
Pisałem:
Cytat
Funkcja prev_title() jest na tej podobnej zasadzie co next_title()...

a więc:
[JAVASCRIPT] pobierz, plaintext
  1. function prev_title() {
  2. new_page = page - 1;
  3. if ( new_page < 1 ) new_page = 3;
  4. toggle_title(page, new_page);
  5. page = new_page;
  6. }
[JAVASCRIPT] pobierz, plaintext

Wiem, wiem, czepiam się ;P
Pozdr.
MateuszS
  1. var page = 1;
  2. var new_page = 0;
  3. function toggle_title(page, new_page) {
  4. document.getElementById('div'+page).style.display = 'none';
  5. document.getElementById('divv'+page).style.display = 'none';
  6.  
  7. document.getElementById('div'+new_page).style.display = 'block';
  8. document.getElementById('divv'+new_page).style.display = 'block';
  9. }
  10.  
  11. function next_title() {
  12. new_page = page + 1;
  13. if ( new_page > 3 ) new_page = 1;
  14. toggle_title(page, new_page); // zmiane display wywalilem do osobnej funkcji
  15. page = new_page;
  16. }
  17.  
  18. function prev_title() {
  19. new_page = page - 1;
  20. if ( new_page > 3 ) new_page = 1;
  21. toggle_title(page, new_page); // zmiane display wywalilem do osobnej funkcji
  22. page = new_page;
  23. }



o tak ;]

Cytat(Fafu @ 22.08.2009, 18:33:35 ) *


jak juz mowilem ;] to nie dziala ;/ Mimo ze poprawnie wywoluje funkcje,

  1. function getElementsByClassName(cn){
  2. var arr = new Array();
  3. var els = document.getElementsByTagName("*");
  4. var exp= new RegExp("^(.* )?"+cn+"( .*)?$", "g");
  5. for (var i = 0; i < els.length; i++ ){
  6. if (exp.test(els[i].className)){
  7. arr.push(els[i]);
  8. }
  9. }
  10. return arr;
  11. }
  12.  
  13. function toggle_title(page, new_page) {
  14. document.getElementById('div'+page).style.display = 'none';
  15. getElementsByClassName('divv'+page).style.display = 'none';
  16.  
  17. document.getElementById('div'+new_page).style.display = 'block';
  18. getElementsByClassName('divv'+new_page).style.display = 'block';
  19. }
  20.  


probowalem tez z document. przedrostkiem ale tylko mi sie rozwala skrypt
Fafu
"funkcja zwraca referencje" czyli chyba można tylko pobrać dane ale nie mozna ich ustawiać... spróbuj poszukać coś jeszcze...
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.