Skip to content

Commit

Permalink
Feat: Expose trackpad's axis values and add a scrollToPosition method
Browse files Browse the repository at this point in the history
  • Loading branch information
bbazukun123 committed May 20, 2024
1 parent c19b9ac commit 98f5561
Showing 1 changed file with 40 additions and 0 deletions.
40 changes: 40 additions & 0 deletions src/ScrollBox.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {
Graphics,
isMobile,
Point,
PointData,
Ticker,
} from 'pixi.js';
import { List } from './List';
Expand Down Expand Up @@ -695,6 +696,21 @@ export class ScrollBox extends Container
this.stopRenderHiddenItems();
}

/**
* Scrolls to the given position.
* @param position - x and y position object.
* @param position.x - x position.
* @param position.y - y position.
*/
scrollToPosition({ x, y }: Partial<PointData>)
{
if (x === undefined && y === undefined) return;
this.renderAllItems();
if (x !== undefined) this.scrollX = -x;
if (y !== undefined) this.scrollY = -y;
this.stopRenderHiddenItems();
}

/** Gets component height. */
override get height(): number
{
Expand Down Expand Up @@ -723,6 +739,30 @@ export class ScrollBox extends Container
this.scrollTop();
}

/** Gets the current raw scroll position on the x-axis (Negated Value). */
get scrollX(): number
{
return this._trackpad.xAxis.value;
}

/** Sets the current raw scroll position on the x-axis (Negated Value). */
set scrollX(value: number)
{
this._trackpad.xAxis.value = value;
}

/** Gets the current raw scroll position on the y-axis (Negated Value). */
get scrollY(): number
{
return this._trackpad.yAxis.value;
}

/** Sets the current raw scroll position on the y-axis (Negated Value). */
set scrollY(value: number)
{
this._trackpad.yAxis.value = value;
}

protected update()
{
if (!this.list) return;
Expand Down

0 comments on commit 98f5561

Please sign in to comment.