我試圖創建一個平滑的滾動效果,同時在一個點擊事件的分區內scrooling。我有點讓它工作,但我無法正確配置它。角度4光滑滾動內div
目標是創建一種旋轉木馬,當用戶點擊按鈕去右鍵,然後只有包含旋轉木馬項目的div水平滾動。
但是,當我點擊按鈕,滾動方式太順利,需要大約2-3秒才能完成。
這是我的代碼:
private parentEl;
ngOnInit() {
this.parentEl = document.getElementsByClassName('carousel_wrap');
}
public goRight(): void {
const el = this.parentEl[0];
const endPosition = el.scrollLeft + this.scrollFactor; // scrollFactor is the width of the child items on the carousel
let interval = setInterval(() => {
el.scrollLeft++;
if (el.scrollLeft === endPosition) {
clearInterval(interval);
}
});
}
如果我給setInterval的延遲,如setInterval(() => {...}, 16);
那麼它會需要更長的時間才能完成。例如,我期待的是在總共300毫秒內執行整個動畫。有誰知道如何解決這個問題?或者我做錯了什麼?
嗯,但在這種情況下,它不工作,因爲scrollVelocity會像0.375,並添加到scrollLeft位置後,它將回到0,因爲它不會添加分數值。 – celsomtrindade
隨着時間調整。嘗試30或甚至3。 –
其實,有一個更好的方法來實現這個目標,用CSS動畫。我正在演示一個小例子。使用滾動可以在每個間隔觸發重繪。 –