Помогите п-ж-та,
делаю горизонтальный скролл, вроде доводчика при скролле на мобильных, чтобы компонент получался в нужной части окна
if(this.startx > this.endx){//touch to right
this.route.scrollLeft = this.route.scrollLeft + this.list.children[0].offsetWidth;
}
if(this.startx < this.endx){
this.route.scrollLeft = this.route.scrollLeft - this.list.children[0].offsetWidth;
}
читал тут примеры
https://learn.javascript.ru/js-animation
если можно, то хотелось бы использовать такой тип анимации
function quad(progress) {
return Math.pow(progress, 2)
}
не могу сообразить как увязать завязать анимацию на время, чтобы не остановилось раньше времени.
пробую писать, что-то вроде
let curr = this.route.scrollLeft;
if(this.startx > this.endx){//to right
let need = this.route.scrollLeft + this.list.children[0].offsetWidth;
for(let i = curr; i <= need; i++){
let int = setTimeout( ()=>{
console.log('to right', i, need)
this.route.scrollLeft = i;
}, 300
)
}
}
if(this.startx < this.endx){//to left
let need = this.route.scrollLeft - this.list.children[0].offsetWidth;
for(let i = curr; i >= need; i--){
let int = setTimeout( ()=>{
console.log('to left', i, need)
this.route.scrollLeft = i;
}, 300
)
}
}