2016-11-18 6 views
0

Я использую эту функцию для установки свойства преобразования некоторых элементов, но анимация не настолько гладкая в firefox и менее гладкая, когда размер окна больше (в любом браузере). Я прочитал много вещь в блогах, которые говорят, что я могу сделать более плавную анимацию, используя requestAnimationFrame, но я не понимаю, как я могу реализовать ее внутри моей функции. Может кто-нибудь объяснить мне, как я могу использовать ее внутри моей функции?using requestAnimationFrame

function sectionMovement(delay,section) { 
    setTimeout(function() { 
    var val = ((v.sectionIndex + 1) > v.leavingSection) ? 
     val = 100 : 
     val = 0; 
    document.getElementById("sec_"+section+"").style.transform = "translateY(-"+val+"%)" 
    }, delay); 
}; 
+0

как вы называете эту функцию? –

+0

внутри цикла for -> sectionMovement (i * 750, ((v.sectionIndex + 1)> v.leavingSection)? (SIV + 1): SIV) – Matija

+0

Есть ваш ответ. https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame –

ответ

0

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

function updateSection(selector) { 
    var elem = document.getElementById("sec_" + section); 
    return function step() { 
    var val = ((v.sectionIndex + 1) > v.leavingSection) ? // not sure what 'v' is? 
     100 : 
     0; 

    elem.style.transform = "translateY(-"+val+"%)"; 
    requestAnimationFrame(step); 
    } 
} 

var sel = "myElementId"; 
requestAnimationFrame(updateSection(sel)); 

Вы также, вероятно, хотите, внешняя переменная, чтобы проверить против того, чтобы знать, когда остановить анимацию.

+0

«v» - это объект ... – Matija

+0

@Matija, за исключением того, что вы не ссылаетесь на него нигде в коде, который вы отправили. Это не объясняет, что это такое. Его JavaScript. * Все * - объект. –

+0

извините, я очень ценю вашу помощь, эти «...» были случайными персонажами, поэтому я могу отправить комментарий – Matija

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

  • Нет связанных вопросов^_^