Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wielokrotne klikanie w diva i zmiana background-image
kapitan kloss
post
Post #1





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 18.11.2004

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


Witajcie,
nie umiem poradzić sobie z wielokrotnym klikaniem na warstwie. Chcialbym aby zmieniala sie ona w petli, czyli raz backgroud byłby lampa_on a po kliknięciu lampa_off. To działa, ale tylko raz. A ja chcialbym aby po ponownym kliknieciu znowu lampa sie zapalala itd.
Kombinowalem z petlami ale nic nie dziala - lampa sie wylacza ale juz nie wlacza, nawet po rozbudowaniu if'ow. Moze ma ktos jakis pomysl do kodu jaki mam.

Kod
<script type="text/javascript" >
    function zmiana() {
        if (document.getElementById("nakladka_pusta").style.backgroundImage = "url('elements/lampa_on.png')")    {
            document.getElementById("nakladka_pusta").style.backgroundImage = "url('elements/lampa_off.png')";
        }
    }
</script>


Kod
<a href="#" onClick="zmiana()" style="cursor:pointer"><div id="nakladka_pusta" style="background-image:url(elements/lampa_on.png);"></div></a>
Go to the top of the page
+Quote Post
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Przy założeniu, że w początkowym stanie lampa "jest zapalona":

[JAVASCRIPT] pobierz, plaintext
  1. function zmiana(obj)
  2. {
  3. obj = obj.getElementsByTagName('div')[0];
  4. if(obj.lightsOff)
  5. {
  6. obj.style.backgroundImage = "url('elements/lampa_on.png')";
  7. obj.lightsOff= false;
  8. }
  9. else
  10. {
  11. obj.style.backgroundImage = "url('elements/lampa_off.png')";
  12. obj.lightsOff= true;
  13. }
  14. }
[JAVASCRIPT] pobierz, plaintext


  1. <a href="javascript;" onClick="zmiana(this)"><div style="background-image:url(elements/lampa_on.png);"></div></a>


P.S. proponuje zamiast DIV'a dać SPAN - w obecnej sytuacji DIV wewnątrz A jest niezgodny z W3C (IMG:style_emoticons/default/wink.gif)

Ten post edytował Sephirus 3.01.2012, 09:52:42
Go to the top of the page
+Quote Post
kapitan kloss
post
Post #3





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 18.11.2004

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


Wielkie dzięki za szybką pomoc, ale cos jeszcze nie gra. Zmiana href tez nic nie daje na #
Lampa sie nie zmienia. Moze ja cos pokopalem, ale doesn't work

link do strony

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





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Obaj namotaliśmy (IMG:style_emoticons/default/smile.gif)

Ty - wrzuć dokładnie tą funkcję tak jak jest.

[JAVASCRIPT] pobierz, plaintext
  1. function zmiana(obj)
  2. {
  3. obj = obj.getElementsByTagName('div')[0];
  4. if(obj.lightsOff)
  5. {
  6. obj.style.backgroundImage = "url('elements/lampa_on.png')";
  7. obj.lightsOff= false;
  8. }
  9. else
  10. {
  11. obj.style.backgroundImage = "url('elements/lampa_off.png')";
  12. obj.lightsOff= true;
  13. }
  14. }
[JAVASCRIPT] pobierz, plaintext


A ja tutaj dałem "javascript;" zamiast "javascript:;"

  1. <a href="java script:;" onclick="zmiana(this)"><div style="background-image:url(elements/lampa_on.png);"></div></a>


Sorki (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
kapitan kloss
post
Post #5





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 18.11.2004

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


Poza tym ze w linku powinno byc java script:; bez spacji to wszystko jest ok.
Bardzo dziekuje za pomoc.
Go to the top of the page
+Quote Post
Sephirus
post
Post #6





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Te spacje to skrypt forum dodaje (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
celbarowicz
post
Post #7





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

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


Czy to niżej pasuje?
  1. <head>
  2. <title>Przykład 1-2</title>
  3. <script type="text/javascript" src="jquery-1.4.2.js"></script>
  4. <script type="text/javascript">
  5. var n=1;var i;var k=1;var i1; var l=100; var u;
  6. function zmien(){
  7. n=n+1;
  8. if(n>2){n=1;}
  9. i1="bolko"+n+".jpg";
  10. u="url("+i1+")";
  11. var z={'background-image':u};
  12.  
  13. $('#fotka').css(z);
  14.  
  15.  
  16. }
  17. </script>
  18. </head>
  19. <body>
  20. <div id="celbar" >barcel</div>
  21. <div id="fotka" style="position:absolute;top:10px;left:100px;width:800px;height:600px;background-image:url(bolko1.jpg)" onClick="zmien()">
  22.  
  23. </div>
  24.  
  25. </body>
  26. </html>
  27.  
  28.  
Go to the top of the page
+Quote Post
kapitan kloss
post
Post #8





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 18.11.2004

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


Co co napisal Sephirus - działa super dobrze. Dzięki

No dobra, a jak za pomocą tego skryptu napisanego przez Sephirusa, wyłączyć również inne warstwy - wlaściwie zmienić je po kliknięciu na lampę.
Czyli po kliknięciu na lampę, obok tego że zaświeca i gaśnie mi lampa, to zamiast diva o nazwie lewy pojawial mi sie div o nazwie lewy_1, który polozony jest zupelnie niezależnie od lampy.

No już sobie poradziłem, wystarczy:
Kod
document.getElementById('div').style.backgroundImage = "url('...')";


Ten post edytował kapitan kloss 7.01.2012, 09:33:37
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: 16.09.2025 - 00:41