2013-10-06 2 views
0

Я делаю нетрадиционный сайт, который прокручивается горизонтально для ОЧЕНЬ больших расстояний. Я заметил, что функции ослабления 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; 
}); 

ответ

0

Вы можете установить длительность в методе animate. API

Что-то вроде этого

.animate( 
    {scrollTop:'300px'}, 
    300, //duration is the 2nd parameter (default - 400ms) 
    swing, 
    function(){ 
    alert(animation complete! - your custom code here!); 
    } 
) 

Или вы всегда можете написать свой собственный ослабление methog

jQuery.easing.method( 
null, 
current_time, 
start_value, 
end_value,  
total_time 
) 

Полезные ссылки - http://forrst.com/posts/How_to_create_custom_jQuery_easing_functions-OKb

+0

Я могу установить длительность всего события прокруткой , но я хочу установить продолжительность части ускорения события прокрутки. Подумайте об этом так, прямо сейчас, если экран должен прокручивать 100 пикселей в течение 5 секунд, он может сделать что-то вроде этого: – wetjosh

+0

ускорение: 1 секунда постоянная скорость: 3 секунды замедление: 1 секунда Если нужно прокрутить 500 пикселей, может это сделать: ускоряться: 5 секунд постоянной скорость: 15 секунд Замедление: 5 секунд Но то, что я хочу, чтобы это сделать: ускоряться: 1 второй постоянной скорость: 23 секунд Замедление: 1 вторых Вы видите, как он сохранял постоянную продолжительность разгона, когда по сравнению с первым расстоянием (100px)? – wetjosh

+0

Просто взгляните на этот http://api.jqueryui.com/easings/ – bhb

Смежные вопросы