W przypadku, kiedy są wykorzystywane standardowe efekty jQuery jak slideTo itp., wówczas można dodać parametr z funkcją easingową - ale o tym wszystkim w przykładach na stronie pluginu. Jeżeli zaistnieje potrzeba wykorzystania w zmianie innych parametrów np. css'ów - wówczas wystarczy zrobić funkcję zależną od czasu oraz wykorzystać metodę jQuery.easing.[easingEfekt](null, [wartość czasu], [wartość początkowa], [wartość różnicy końcowej i początkowej], [maksymalna ilość czasu]), np.:
function change(time) { if (arguments.length == 0) // sprawdzanie czy jest wywołanie funkcji bez parametru var time = 0; if (time == 10) // koniec wywołania efektu return; $('.border').css('border-right', jQuery.easing.easeInCubic(null, time, 5, 10, 10)) // zmiana wartości zmiennej zgodnie z wybranym algorytmem - zwiększenie od 5 do 15 setTimeout(function(){change(time+1)}, 20); }Rozpatrzmy to na przykładzie ostatnio wałkowanych przeze mnie Google Maps'ach. Załóżmy, że chcemy zrobić efekt pogrubiania linii, kiedy na nią klikniemy. Wówczas konieczne będzie ponowne ustawienie parametrów w zależności od czasu:
var polyline = new google.maps.Polyline({ path: new Array( new google.maps.LatLng(51.07742969478794, 16.985549926757812), new google.maps.LatLng(51.076782592536524, 17.02709197998047) ), strokeColor: '#0000ff', strokeOpacity:0.8, strokeWeight:5 }); google.maps.event.addListener(polyline, 'click', function(event) { change(); });Funkcja change będzie wyglądać tak:
function change(time) { if (arguments.length == 0) var time = 1; if (time == 10) return; polyline.setOptions({strokeWeight: jQuery.easing.easeInCubic(null, time, 5, 10, 10)}); setTimeout(function(){change(time+1)}, 20); }A oto przykład (w tym miejscu chciałem przeprosić wszystkich Operowców - niestety Google ma straszną obsługę tej przeglądarki jeśli chodzi o Maps API i niestety może to nie działać, albo się nie animować :( ):
Voila! Przykładem wykorzystania może być dokonana przeze mnie mapka tras biegowych w Spalonej http://spalona.pl/trasy-narciarskie.html
Brak komentarzy:
Prześlij komentarz