mirror of
https://github.com/m1k1o/neko.git
synced 2024-07-24 14:40:50 +12:00
wheel: add firstScroll.
This commit is contained in:
parent
971f43c586
commit
3918a48187
@ -48,7 +48,7 @@
|
|||||||
'zPADwoFouPut3uzO12UyQSoclkotrt9ocAHKZnr8UhAP4bvg/gIs+UMfaaMTZTFOUkHo8/B/AEwAWjl5pV+j1dZ//g4xUMBo8YY/cqlcqhNvffAJxq40dmA5' +
|
'zPADwoFouPut3uzO12UyQSoclkotrt9ocAHKZnr8UhAP4bvg/gIs+UMfaaMTZTFOUkHo8/B/AEwAWjl5pV+j1dZ//g4xUMBo8YY/cqlcqhNvffAJxq40dmA5' +
|
||||||
'bFPoAjrev5EfwZQNfoKbju/u1ri/PvfgKYGMl+K2I7b8U7wA5wpgC/AgAA///Yyif1MZXzRQAAAABJRU5ErkJggg==) 4 4, crosshair'
|
'bFPoAjrev5EfwZQNfoKbju/u1ri/PvfgKYGMl+K2I7b8U7wA5wpgC/AgAA///Yyif1MZXzRQAAAABJRU5ErkJggg==) 4 4, crosshair'
|
||||||
|
|
||||||
const WHEEL_STEP = 50 // Delta threshold for a mouse wheel step
|
const WHEEL_STEP = 53 // Delta threshold for a mouse wheel step
|
||||||
const WHEEL_LINE_HEIGHT = 19
|
const WHEEL_LINE_HEIGHT = 19
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
@ -165,10 +165,11 @@
|
|||||||
|
|
||||||
private wheelX = 0
|
private wheelX = 0
|
||||||
private wheelY = 0
|
private wheelY = 0
|
||||||
|
private wheelDate = Date.now()
|
||||||
|
|
||||||
// negative sensitivity can be acheived using increased step value
|
// negative sensitivity can be acheived using increased step value
|
||||||
get wheelStep() {
|
get wheelStep() {
|
||||||
let x = 20 * (window.devicePixelRatio || 1)
|
let x = WHEEL_STEP
|
||||||
|
|
||||||
if (this.scroll.sensitivity < 0) {
|
if (this.scroll.sensitivity < 0) {
|
||||||
x *= Math.abs(this.scroll.sensitivity) + 1
|
x *= Math.abs(this.scroll.sensitivity) + 1
|
||||||
@ -199,6 +200,15 @@
|
|||||||
|
|
||||||
this.setMousePos(e)
|
this.setMousePos(e)
|
||||||
|
|
||||||
|
const now = Date.now()
|
||||||
|
const firstScroll = now - this.wheelDate > 250
|
||||||
|
|
||||||
|
if (firstScroll) {
|
||||||
|
this.wheelX = 0
|
||||||
|
this.wheelY = 0
|
||||||
|
this.wheelDate = now
|
||||||
|
}
|
||||||
|
|
||||||
let dx = e.deltaX
|
let dx = e.deltaX
|
||||||
let dy = e.deltaY
|
let dy = e.deltaY
|
||||||
|
|
||||||
@ -210,28 +220,30 @@
|
|||||||
this.wheelX += dx
|
this.wheelX += dx
|
||||||
this.wheelY += dy
|
this.wheelY += dy
|
||||||
|
|
||||||
console.log(typeof dx, dx, typeof dy, dy, this.wheelX, this.wheelY)
|
|
||||||
|
|
||||||
let x = 0
|
let x = 0
|
||||||
if (Math.abs(this.wheelX) >= this.wheelStep) {
|
if (Math.abs(this.wheelX) >= this.wheelStep || firstScroll) {
|
||||||
if (this.wheelX < 0) {
|
if (this.wheelX < 0) {
|
||||||
x = this.wheelSensitivity * -1
|
x = this.wheelSensitivity * -1
|
||||||
} else if (this.wheelX > 0) {
|
} else if (this.wheelX > 0) {
|
||||||
x = this.wheelSensitivity
|
x = this.wheelSensitivity
|
||||||
}
|
}
|
||||||
|
|
||||||
this.wheelX = 0
|
if (!firstScroll) {
|
||||||
|
this.wheelX = 0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let y = 0
|
let y = 0
|
||||||
if (Math.abs(this.wheelY) >= this.wheelStep) {
|
if (Math.abs(this.wheelY) >= this.wheelStep || firstScroll) {
|
||||||
if (this.wheelY < 0) {
|
if (this.wheelY < 0) {
|
||||||
y = this.wheelSensitivity * -1
|
y = this.wheelSensitivity * -1
|
||||||
} else if (this.wheelY > 0) {
|
} else if (this.wheelY > 0) {
|
||||||
y = this.wheelSensitivity
|
y = this.wheelSensitivity
|
||||||
}
|
}
|
||||||
|
|
||||||
this.wheelY = 0
|
if (!firstScroll) {
|
||||||
|
this.wheelY = 0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x != 0 || y != 0) {
|
if (x != 0 || y != 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user