diff --git a/core/src/components/picker-column/picker-column.tsx b/core/src/components/picker-column/picker-column.tsx index e268acf60d..7233d46cd1 100644 --- a/core/src/components/picker-column/picker-column.tsx +++ b/core/src/components/picker-column/picker-column.tsx @@ -313,6 +313,18 @@ export class PickerColumnCmp implements ComponentInterface { } else { this.y += detail.deltaY; + + if (Math.abs(detail.velocityY) < 0.05) { + const isScrollingUp = detail.deltaY > 0; + const optHeightFraction = (Math.abs(this.y) % this.optHeight) / this.optHeight; + + if (isScrollingUp && optHeightFraction > 0.5) { + this.velocity = Math.abs(this.velocity) * -1; + } else if (!isScrollingUp && optHeightFraction <= 0.5) { + this.velocity = Math.abs(this.velocity); + } + } + this.decelerate(); } }