Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jquery] przesuwanie diva z tłem w nieskonczonej pętli
basu
post
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 26.12.2005

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


jak przesuwać tło w divie, tworząc tylko krótki obrazek tła i powtarzać go w pętli?

Znalazlem taki przyklad, ktory prawie mi odpowiada, ale tutaj tworza długi obrzek tła na szerokość 1000px i animuja tylko 1 raz.

http://robot.anthonycalzadilla.com/

Ten post edytował basu 21.07.2009, 21:35:36
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Stwórz taki dłuugi obrazek i zmieniaj mu pozycję. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
basu
post
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 26.12.2005

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


wlasnie nie chce tworzyc dlugich obrazkow, tylko zapętlić krótki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) wiem że sie da, tylko jak?
Go to the top of the page
+Quote Post
ayeo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


Witam!



No bardzo łatwo (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Powiedzmy, że masz obrazek picture.png o wymiarach 300x200. R0bisz sobie tzw okienko czyli ten widoczny fragment (załóżmy, że wielkości tej samej co obrazek). Dajesz mu overflow: hidden. W środku wstawiasz diva o szerokości takiej jak suma obrazków (może być ten sam powtórzony 2 razy). Przesuwasz sobie ten kontener (ten co zawiera te 2 obrazki) i jak przesuniesz więcej niż szerokość to wracasz o szerokość. Czyli wizualnie jesteś w tym samym miejscu, a masz co przesuwać.



Mam nadzieję, że jasne.



Pozdrawiam!
Go to the top of the page
+Quote Post
basu
post
Post #5





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 26.12.2005

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


zrobilem cos takiego do tej pory:

  1. $(document).ready(function(){
  2.  
  3. $('#ground').css({backgroundPosition: 'left bottom'});
  4.  
  5. $('#wrapper').css({overflow: "hidden"});
  6.  
  7. animation();
  8. //setTimeout("animation2()",10000);
  9. });
  10.  
  11. function animation() {
  12. $('#ground').animate({backgroundPosition: '(-500px bottom)'}, 1000);
  13. animation2();
  14. }
  15.  
  16. function animation2() {
  17. $('#ground').animate({backgroundPosition: '(0px bottom)'}, 10000);
  18. animation();
  19. }


  1. div {position: relative;}
  2.  
  3. #wrapper {
  4. background: #bedfe4 url(sun.png) no-repeat left -30px;
  5. border: 5px solid #402309;
  6. height: 400px;
  7. width:500px;
  8. }
  9.  
  10. #ground {
  11. background: url(ground-05.png) no-repeat left bottom;
  12. height: 400px;
  13. width: 1000px;
  14. }
  15.  
  16. #branding {
  17. background: url(robot-head.png) no-repeat center top;
  18. width: 271px;
  19. height: 253px;
  20. z-index: 4;
  21. }


  1. <div id="wrapper">
  2. <div id="ground"></div>
  3. </div>


teraz obrazek jest zapetlony i jedzie od lewe do prawej i odwrotnie. Jak zmienic ten kod aby dzialal tak jak opisujesz? Nie wiem jak zmienic javascript, aby przesunal pozycje do poczatku "przeskakujac" do do poczatkowej pozycji i wtedy Twoj sposob moglby zadzialac...
probowalem wstawić $('#ground').css({backgroundPosition: 'left bottom'}); i zresetowac pozycje do poczatku w animation2(), ale nie dziala.
Sugestie?
Go to the top of the page
+Quote Post
ayeo
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


Witam!

No zamiast tego callbacka animation2() zrób funkcję, która przesunie (bez animacji) obrazek o szerokość i odpali ponownie animation();



Pozdrawiam!
Go to the top of the page
+Quote Post
basu
post
Post #7





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 26.12.2005

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


  1. function animation2() {
  2. $('#ground').css({backgroundPosition: '(0px bottom)'});
  3. animation();
  4. }


w tym miejscu wlasnie sie zacialem i probuje pol dnia zmusic to do dzialania? Ten kod nie dziala, animacja idzie w jedna strone i staje w miejscu.
Moze masz jakis dzialajacy przyklad?
Go to the top of the page
+Quote Post
ayeo
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


Kod
$('#ground').css("background-position", "0px bottom");


Czytaj manual (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Pozdrawiam!
Go to the top of the page
+Quote Post
basu
post
Post #9





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 26.12.2005

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


Dziekuje za Twoja pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
rzecz w tym ze czytalem i dalej ne dziala. zatrzymuje sie i nie zmienia ani pozycji ani nie idzic od nowa. Dochodze od prawej do lewej i na tym sie konczy animacja (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

  1. function animation() {
  2. $('#ground').animate({backgroundPosition: '(-500px bottom)'}, 10000);
  3. animation2();
  4. }
  5.  
  6. function animation2() {
  7. $('#ground').css({backgroundPosition: '0px bottom'});
  8. animation();
  9. }


Ten post edytował basu 21.07.2009, 22:55:28
Go to the top of the page
+Quote Post
ayeo
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


Witam!

Chyba nie czytałeś mojego posta :/

Pozdrawiam!
Go to the top of the page
+Quote Post
basu
post
Post #11





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 26.12.2005

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


No to kolega daje mi do myslenia (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
No to naprawde nie wiem gdzie popelniam blad (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

jak zrobic zamiast callbacka animation2() zrobic funkcję, która przesunie (bez animacji) obrazek o szerokość i odpali ponownie animation(). Moze tutaj? Tylko nie mam pojecia jak...

ani zadne wariacje backgroundPosition tez nie dzialaja np:

  1. function animation2() {
  2. $('#ground').css({backgroundPosition: '0 0'});
  3. animation();
  4. }


Pozdrawiam!
Go to the top of the page
+Quote Post
ayeo
post
Post #12





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


Witam!

Spójrz na swój kod i spójrz na mój!

Pozdrawiam!
Go to the top of the page
+Quote Post
basu
post
Post #13





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 26.12.2005

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


OK, nie zauwazylem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Dalej nie dziala... Zmienilem na cos takiego, ale tez bez powodzenia

  1. $(document).ready(function(){
  2. animation();
  3. setTimeout("animation2", 1000);
  4. });
  5.  
  6. function animation() {
  7. $('#ground').animate({backgroundPosition: '(-500px bottom)'}, 1000);
  8. }
  9.  
  10. function animation2() {
  11. $('#ground').css("backgroundPosition", "0px bottom");
  12. animation();
  13. }


Ten post edytował basu 21.07.2009, 23:25:12
Go to the top of the page
+Quote Post
ayeo
post
Post #14





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


(IMG:http://files.getdropbox.com/u/216241/jQuery.png)

edit: i daj to jako callback, powywalaj te setTimeout!!
Go to the top of the page
+Quote Post
basu
post
Post #15





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 26.12.2005

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


  1. $(document).ready(function(){
  2. animation();
  3. });
  4.  
  5. function animation() {
  6. $('#ground').animate({backgroundPosition: '(-500px bottom)'}, 10000);
  7. animation2();
  8. }
  9.  
  10. function animation2() {
  11. //$('#ground').animate("background-position", "0 bottom");
  12. //$('#ground').css("background-position", "0px bottom");
  13. $('#ground').animate({backgroundPosition: '(0px bottom)'});
  14. animation();
  15. }


widac teraz nieladne przesuniecie: $('#ground').animate({backgroundPosition: '(0px bottom)'});
wogole nie lapie: $('#ground').css("background-position", "0px bottom");

Ten post edytował basu 21.07.2009, 23:49:44
Go to the top of the page
+Quote Post
ayeo
post
Post #16





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


Witam!

JAKO CALLBACK MASZ DAĆ ANIMATION2();

Pozdrawiam!
Go to the top of the page
+Quote Post
basu
post
Post #17





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 26.12.2005

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


  1. $(document).ready(function(){
  2. animation();
  3. });
  4.  
  5. function animation() {
  6. $('#ground').animate({backgroundPosition: '(-500px bottom)'}, 10000, '', animation2);
  7. }
  8.  
  9. function animation2() {
  10. $('#ground').css("background-position", "0px bottom");
  11. animation();
  12. }


dziala (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


// no! (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
// ayeo


Ten post edytował ayeo 22.07.2009, 00:17:56
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: 23.08.2025 - 01:44