У меня сейчас есть этот кусочек JavaScript, который использует jQuery animate для создания эффекта движения воды.
var waves = function() {
(function() {
var FirstWave = function() {
this.css = function(p) {
var s = Math.sin(p*5)
var x = (960 * 2) - (p * 960) + 10
var y = s * 5 + 15
return {backgroundPosition: "-" + x + "px", bottom: "-" + y + "px"}
}
};
var tidalWave = function() {
$("#waves-1").animate({path: new FirstWave}, 10999, "linear");
};
setInterval(tidalWave, 500);
})();
};
waves()
вызывается внутри обработчика $(document).ready()
.
Как видите, setInterval
установлен на 500, хотя анимация длится чуть менее 11 секунд. Я сделал это, чтобы анимация начиналась при загрузке страницы, так как простой вызов $.animate()
не запускал анимацию.
Я уверен, что при таком способе будет много проблем со скоростью, и что угодно еще.
Можно ли это улучшить?