Я делаю нетрадиционный сайт, который прокручивается горизонтально для ОЧЕНЬ больших расстояний. Я заметил, что функции ослабления jQuery растягиваются по длине прокрученного расстояния. Длительность, на которую он ускоряется, кажется, является фиксированной частью расстояния, которое требуется прокручивать. Например, он может ускоряться для первого 1/5 расстояния, прокручивать с постоянной скоростью на 3/5 и затем замедляться для оставшихся 1/5-й. Это делает ускорение более вялым при прокрутке на большие расстояния. Любой способ ускорить его в течение фиксированного периода времени независимо от того, какое расстояние ему нужно прокрутить?Исправлено ускорение для упрощения jQuery?
Вот часть моего кода, если это помогает
$('tbody.travelTo a').click(function(){
$('html, body').animate({
scrollLeft: $($.attr(this, 'href')).offset().left - 1/2 * $(window).width() + 1/2 * $($.attr(this, 'href')).width()
}, $($.attr(this, 'href')).offset().left/travelRate, 'swing');
return false;
});
Я могу установить длительность всего события прокруткой , но я хочу установить продолжительность части ускорения события прокрутки. Подумайте об этом так, прямо сейчас, если экран должен прокручивать 100 пикселей в течение 5 секунд, он может сделать что-то вроде этого: – wetjosh
ускорение: 1 секунда постоянная скорость: 3 секунды замедление: 1 секунда Если нужно прокрутить 500 пикселей, может это сделать: ускоряться: 5 секунд постоянной скорость: 15 секунд Замедление: 5 секунд Но то, что я хочу, чтобы это сделать: ускоряться: 1 второй постоянной скорость: 23 секунд Замедление: 1 вторых Вы видите, как он сохранял постоянную продолжительность разгона, когда по сравнению с первым расстоянием (100px)? – wetjosh
Просто взгляните на этот http://api.jqueryui.com/easings/ – bhb