Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Przewijanie, ...
MateuszS
post
Post #1





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


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


Ten post edytował MateuszScirka 22.08.2009, 13:45:54
Powód edycji: Poprawiłem bbCode / ociu
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
kamil4u
post
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


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 (IMG:style_emoticons/default/smile.gif)

Pozdrawiam
Go to the top of the page
+Quote Post
MateuszS
post
Post #3





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


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...

Ten post edytował MateuszScirka 22.08.2009, 14:03:05
Go to the top of the page
+Quote Post
ziqzaq
post
Post #4





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

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


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. (IMG:style_emoticons/default/winksmiley.jpg)
Pozdr.

Ten post edytował ziqzaq 22.08.2009, 15:49:17
Go to the top of the page
+Quote Post
MateuszS
post
Post #5





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


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
Go to the top of the page
+Quote Post
Fafu
post
Post #6





Grupa: Zarejestrowani
Postów: 243
Pomógł: 33
Dołączył: 30.01.2008
Skąd: Wrocław

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


http://www.google.pl/#hl=pl&lr=&ei...766f15c0ca9ebbd

http://mynthon.net/articles/javascript/fun...entsbyclassname
Go to the top of the page
+Quote Post
ziqzaq
post
Post #7





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

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


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





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


  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
Go to the top of the page
+Quote Post
Fafu
post
Post #9





Grupa: Zarejestrowani
Postów: 243
Pomógł: 33
Dołączył: 30.01.2008
Skąd: Wrocław

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


"funkcja zwraca referencje" czyli chyba można tylko pobrać dane ale nie mozna ich ustawiać... spróbuj poszukać coś jeszcze...
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 13:25