Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MooTools]
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
Xeor^
Mam taki kod:


CODE
this.tween('background-position', bp_left+" "+bp_top);


który jest wykonywany po kliknięciu przycisku na klawiaturze, problem polega na tym, że jak ktoś kilka razy kliknie klawisz, to tło zostanie przesunięte nie od zakończenia poprzedniej wartości lecz od momentu w którym kliknie. Jak sprawić by ten kod się nie wykonał dopóki nie zostanie wykonany ostatni Tween? Domyślam sie że to banalne pytanie, ale nie wiem jak to ugryźć.
wookieb
Ja bym na twoim miejscu dorzucił obsługe zdarzenia complete dla tego eventu. I wygladaloby to tak
1) Na początku element nie ma żadnej klasy
  1. <div></div>

2) Po kliknięciu sprawdzamy czy element zawiera klasę animated. Jeżeli tak to nic dalej nie robimy. W przyciwnym wypadku idziemy dalej
3) Dodajemy do niego klase i animujemy. W tym ze do animacji dodajemy zdarzenie complete w którym usuwamy klase "animated" dla danego elementu
  1. <div class="animated"></div>

4) na koncu nasz element znowu bedzie taki sam jak na poczatku
  1. <div></div>


Nie znam mootools bardzo dobrze i w dokumentacji nie znalazłem metody typu "isTweened" do sprawdzenia czy element jest animowany (CAURINA TWEENER WINS), wiec taka opcja wydaje mi sie dosc dobra.

//Aha. NIE TEN dział.
Xeor^
Kod
     var myFx = new Fx.Tween('myDiv');     myFx.start('background-position', bp_left+" "+bp_top);
     myFx.complete = function(){
         alert("koniec");
      
         };



Ten kod działa, tylko jeden problem jest, funkcja ALERT wykonuje się w nieskończoność po skończonym Tweenie. Potrzeba mi biblioteki która płynnie zmieni mi Background-position: 100 100; << w takiej formie na dowolną inną, nie musi to być mootools, jakieś propozycje?
wookieb
jquery z dodatkiem do zmiany background position.
http://www.corrupt-system.de/jquery/backgroundPosition/
Xeor^
świetnie, przyjemniejszy jest jQuery, ale znowu mam problem,

Kod
$('#myDiv').animate({backgroundPosition: bp_left + " " + bp_top});


Przy takim kodzie płynnie animuje mi tylko w lewo i w prawo, natomiast w górę i w dół przeskakuje na "sztywno".
wookieb
A napewno użyłes poprawnie tego dodatku co podałem?
Xeor^
Już działa zamiast:

Kod
backgroundPosition: '('+ bp_left + ' ' + bp_top + ')'


wpisywałem:

Kod
backgroundPosition: (bp_left + ' ' + bp_top)
.
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.