簡體   English   中英

鼠標滾輪事件-速度/動量

[英]Mousewheel event - Velocity/Momentum

我目前正在實驗THREE.JS項目,並使用鼠標滾輪滾動事件將0設置為1。

但是,我想實現與您在Merci Michael的playdoh鏈接中看到的相同的動力。

目前,這是我到目前為止所做的。

this.R = 0
mouseWheel(dx, dy) {
    if (this.R < 0) {
        this.R = 0
        return
    }
    if (this.R > 1) {
        this.R = 1
        return
    }

    inertia.update(dy)
    this.R += dy / 45500
    let clamped = this.clamp(0, 1, this.R);

    // UPDATE THREEJS CAMERA POS
    this.dolly.cameraPosition = clamped;
    this.dolly.lookatPosition = clamped;
    this.dolly.update();
}
clamp(min, max, v) {
    if (v < min) {
        return min;
    } else if (v > max) {
        return max;
    } else {
        return v;
    }
}

它可以工作,但是在我發送的示例鏈接中沒有達到相同的效果。 我希望此人滾動並使其具有一定速度,以便它繼續滾​​動更多。 此刻,當您滾動時,它幾乎立即停止。

也許代替

this.dolly.cameraPosition = clamped;

就像是

this.dolly.cameraPosition += (clamped-this.dolly.cameraPosition)*0.5

代替?

您可以將0.5更改為不同的值,例如0.1或0.9,以更改過渡的快感。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM