lyb-pixi-js 1.1.10 → 1.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +72 -40
- package/package.json +1 -1
- package/Components/Base/LibPixiBitText.d.ts +0 -20
- package/Components/Base/LibPixiBitText.js +0 -26
- package/Components/Base/LibPixiContainer.d.ts +0 -22
- package/Components/Base/LibPixiContainer.js +0 -51
- package/Components/Base/LibPixiParticleMove.d.ts +0 -39
- package/Components/Base/LibPixiParticleMove.js +0 -100
- package/Components/Base/LibPixiRectBgColor.d.ts +0 -45
- package/Components/Base/LibPixiRectBgColor.js +0 -98
- package/Components/Base/LibPixiSpine.d.ts +0 -57
- package/Components/Base/LibPixiSpine.js +0 -122
- package/Components/Base/LibPixiText.d.ts +0 -37
- package/Components/Base/LibPixiText.js +0 -32
- package/Components/Custom/LibPixiButtonHover.d.ts +0 -32
- package/Components/Custom/LibPixiButtonHover.js +0 -44
- package/Components/Custom/LibPixiCloseBtn.d.ts +0 -14
- package/Components/Custom/LibPixiCloseBtn.js +0 -35
- package/Components/Custom/LibPixiDrawer.d.ts +0 -16
- package/Components/Custom/LibPixiDrawer.js +0 -59
- package/Components/Custom/LibPixiPerforMon.d.ts +0 -31
- package/Components/Custom/LibPixiPerforMon.js +0 -107
- package/Components/Custom/LibPixiProgress.d.ts +0 -29
- package/Components/Custom/LibPixiProgress.js +0 -36
- package/Components/Custom/LibPixiScrollContainer.d.ts +0 -57
- package/Components/Custom/LibPixiScrollContainer.js +0 -166
- package/Components/Custom/LibPixiScrollNum.d.ts +0 -62
- package/Components/Custom/LibPixiScrollNum.js +0 -146
- package/Components/Custom/LibPixiSlider.d.ts +0 -45
- package/Components/Custom/LibPixiSlider.js +0 -111
- package/Components/Custom/LibPixiSubAddMinMax.d.ts +0 -49
- package/Components/Custom/LibPixiSubAddMinMax.js +0 -76
- package/Components/Custom/LibPixiTable.d.ts +0 -52
- package/Components/Custom/LibPixiTable.js +0 -70
- package/Utils/LibPixiAudio.d.ts +0 -34
- package/Utils/LibPixiAudio.js +0 -140
- package/Utils/LibPixiCreateNineGrid.d.ts +0 -15
- package/Utils/LibPixiCreateNineGrid.js +0 -19
- package/Utils/LibPixiEvent.d.ts +0 -9
- package/Utils/LibPixiEvent.js +0 -22
- package/Utils/LibPixiEventControlled.d.ts +0 -8
- package/Utils/LibPixiEventControlled.js +0 -21
- package/Utils/LibPixiFilter.d.ts +0 -9
- package/Utils/LibPixiFilter.js +0 -30
- package/Utils/LibPixiIntervalTrigger.d.ts +0 -6
- package/Utils/LibPixiIntervalTrigger.js +0 -33
- package/Utils/LibPixiOutsideClick.d.ts +0 -8
- package/Utils/LibPixiOutsideClick.js +0 -22
- package/Utils/LibPixiOverflowHidden.d.ts +0 -6
- package/Utils/LibPixiOverflowHidden.js +0 -14
- package/Utils/LibPixiPromiseTickerTimeout.d.ts +0 -6
- package/Utils/LibPixiPromiseTickerTimeout.js +0 -22
- package/Utils/LibPixiScaleContainer.d.ts +0 -8
- package/Utils/LibPixiScaleContainer.js +0 -14
- package/Utils/LibPixiShadow.d.ts +0 -17
- package/Utils/LibPixiShadow.js +0 -18
- package/Utils/LibPixiTickerTimeout.d.ts +0 -6
- package/Utils/LibPixiTickerTimeout.js +0 -28
- package/index.d.ts +0 -1
- package/index.js +0 -2
- package/libPixiJs.d.ts +0 -163
- package/libPixiJs.js +0 -174
- package/lyb-pixi.js +0 -1263
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { Container } from "pixi.js";
|
|
2
|
-
import { LibPixiContainer } from "../Base/LibPixiContainer";
|
|
3
|
-
export interface LibPixiScrollContainerParams {
|
|
4
|
-
/** 宽度 */
|
|
5
|
-
width: number;
|
|
6
|
-
/** 高度 */
|
|
7
|
-
height: number;
|
|
8
|
-
/** 滚动内容 */
|
|
9
|
-
scrollContent: Container;
|
|
10
|
-
/** 底部内边距 */
|
|
11
|
-
bottomMargin?: number;
|
|
12
|
-
}
|
|
13
|
-
/** @description 支持鼠标滚轮滚动、鼠标拖动、手指滑动,支持惯性滚动及回弹
|
|
14
|
-
* @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiScrollContainer-滚动容器
|
|
15
|
-
*/
|
|
16
|
-
export declare class LibPixiScrollContainer extends LibPixiContainer {
|
|
17
|
-
/** 开始位置 */
|
|
18
|
-
private _startY;
|
|
19
|
-
/** 惯性速度 */
|
|
20
|
-
private _velocity;
|
|
21
|
-
/** 上一次滚动时间 */
|
|
22
|
-
private _startTime;
|
|
23
|
-
/** 开始位置 */
|
|
24
|
-
private _startPosition;
|
|
25
|
-
/** 滚动速度 */
|
|
26
|
-
private _scrollSpeed;
|
|
27
|
-
/** 是否处于拖动状态 */
|
|
28
|
-
private _isDragging;
|
|
29
|
-
/** 滚动容器 */
|
|
30
|
-
_scrollContent: Container;
|
|
31
|
-
/** 遮罩 */
|
|
32
|
-
private _maskGraphics;
|
|
33
|
-
/** 滚动的内容 */
|
|
34
|
-
private _content;
|
|
35
|
-
constructor(params: LibPixiScrollContainerParams);
|
|
36
|
-
/** @description 设置滚动容器可视区宽高
|
|
37
|
-
* @param width 宽度
|
|
38
|
-
* @param height 高度
|
|
39
|
-
*/
|
|
40
|
-
setDimensions(width: number, height: number): void;
|
|
41
|
-
/** @description 返回顶部 */
|
|
42
|
-
scrollToTop(): void;
|
|
43
|
-
/** @description 往滚动内容添加元素 */
|
|
44
|
-
addContent(container: Container): void;
|
|
45
|
-
/** @description 按下 */
|
|
46
|
-
private _onDragStart;
|
|
47
|
-
/** @description 拖动 */
|
|
48
|
-
private _onDragMove;
|
|
49
|
-
/** @description 拖动结束 */
|
|
50
|
-
private _onDragEnd;
|
|
51
|
-
/** @description 滚轮滚动 */
|
|
52
|
-
private _onWheelScroll;
|
|
53
|
-
/** @description 惯性动画 */
|
|
54
|
-
private _applyInertia;
|
|
55
|
-
/** @description 限制滚动范围 */
|
|
56
|
-
private _limitScrollRange;
|
|
57
|
-
}
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
import { Container, Graphics, Sprite, } from "pixi.js";
|
|
2
|
-
import { gsap } from "gsap";
|
|
3
|
-
import { LibPixiContainer } from "../Base/LibPixiContainer";
|
|
4
|
-
/** @description 支持鼠标滚轮滚动、鼠标拖动、手指滑动,支持惯性滚动及回弹
|
|
5
|
-
* @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiScrollContainer-滚动容器
|
|
6
|
-
*/
|
|
7
|
-
export class LibPixiScrollContainer extends LibPixiContainer {
|
|
8
|
-
constructor(params) {
|
|
9
|
-
const { width, height, scrollContent, bottomMargin = 50 } = params;
|
|
10
|
-
super(width, height);
|
|
11
|
-
/** 开始位置 */
|
|
12
|
-
this._startY = 0;
|
|
13
|
-
/** 惯性速度 */
|
|
14
|
-
this._velocity = 0;
|
|
15
|
-
/** 上一次滚动时间 */
|
|
16
|
-
this._startTime = 0;
|
|
17
|
-
/** 开始位置 */
|
|
18
|
-
this._startPosition = 0;
|
|
19
|
-
/** 滚动速度 */
|
|
20
|
-
this._scrollSpeed = 200;
|
|
21
|
-
/** 是否处于拖动状态 */
|
|
22
|
-
this._isDragging = false;
|
|
23
|
-
this._scrollContent = scrollContent;
|
|
24
|
-
// 创建内容容器
|
|
25
|
-
this._content = new Container();
|
|
26
|
-
this.addChild(this._content);
|
|
27
|
-
this._content.addChild(this._scrollContent);
|
|
28
|
-
// 创建底部占位
|
|
29
|
-
if (bottomMargin > 0) {
|
|
30
|
-
const bottom_box = new Sprite();
|
|
31
|
-
this._content.addChild(bottom_box);
|
|
32
|
-
bottom_box.y = this._content.height + bottomMargin;
|
|
33
|
-
}
|
|
34
|
-
// 创建遮罩
|
|
35
|
-
this._maskGraphics = new Graphics();
|
|
36
|
-
this.addChild(this._maskGraphics);
|
|
37
|
-
this._maskGraphics.clear();
|
|
38
|
-
this._maskGraphics.beginFill(0x000000);
|
|
39
|
-
this._maskGraphics.drawRect(0, 0, width, height);
|
|
40
|
-
this._maskGraphics.endFill();
|
|
41
|
-
this.mask = this._maskGraphics;
|
|
42
|
-
// 添加事件监听
|
|
43
|
-
this.eventMode = "static";
|
|
44
|
-
this.on("pointerdown", this._onDragStart, this);
|
|
45
|
-
this.on("pointermove", this._onDragMove, this);
|
|
46
|
-
this.on("pointerup", this._onDragEnd, this);
|
|
47
|
-
this.on("pointerupoutside", this._onDragEnd, this);
|
|
48
|
-
this.on("wheel", this._onWheelScroll, this);
|
|
49
|
-
}
|
|
50
|
-
/** @description 设置滚动容器可视区宽高
|
|
51
|
-
* @param width 宽度
|
|
52
|
-
* @param height 高度
|
|
53
|
-
*/
|
|
54
|
-
setDimensions(width, height) {
|
|
55
|
-
// 更新遮罩尺寸
|
|
56
|
-
this._maskGraphics.clear();
|
|
57
|
-
this._maskGraphics.beginFill(0x000000);
|
|
58
|
-
this._maskGraphics.drawRect(0, 0, width, height);
|
|
59
|
-
this._maskGraphics.endFill();
|
|
60
|
-
this.setSize(width, height);
|
|
61
|
-
}
|
|
62
|
-
/** @description 返回顶部 */
|
|
63
|
-
scrollToTop() {
|
|
64
|
-
this._content.y = 0;
|
|
65
|
-
}
|
|
66
|
-
/** @description 往滚动内容添加元素 */
|
|
67
|
-
addContent(container) {
|
|
68
|
-
this._scrollContent.addChild(container);
|
|
69
|
-
}
|
|
70
|
-
/** @description 按下 */
|
|
71
|
-
_onDragStart(event) {
|
|
72
|
-
if (this._content.height <= this._maskGraphics.height)
|
|
73
|
-
return;
|
|
74
|
-
const position = event.getLocalPosition(this);
|
|
75
|
-
this._startY = position.y - this._content.y;
|
|
76
|
-
this._isDragging = true;
|
|
77
|
-
this._velocity = 0;
|
|
78
|
-
this._startTime = Date.now();
|
|
79
|
-
this._startPosition = this._content.y;
|
|
80
|
-
gsap.killTweensOf(this._content);
|
|
81
|
-
}
|
|
82
|
-
/** @description 拖动 */
|
|
83
|
-
_onDragMove(event) {
|
|
84
|
-
if (this._isDragging) {
|
|
85
|
-
const position = event.data.getLocalPosition(this);
|
|
86
|
-
const newPosition = position.y - this._startY;
|
|
87
|
-
this._content.y = newPosition;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
/** @description 拖动结束 */
|
|
91
|
-
_onDragEnd() {
|
|
92
|
-
this._isDragging = false;
|
|
93
|
-
const currentTime = Date.now();
|
|
94
|
-
const deltaTime = currentTime - this._startTime; // 计算停留时间
|
|
95
|
-
if (deltaTime < 250) {
|
|
96
|
-
// 如果停留时间在阈值内,计算惯性速度
|
|
97
|
-
this._velocity = (this._content.y - this._startPosition) / deltaTime;
|
|
98
|
-
this._applyInertia();
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
// 停留时间超出阈值,取消惯性
|
|
102
|
-
this._velocity = 0;
|
|
103
|
-
}
|
|
104
|
-
this._limitScrollRange();
|
|
105
|
-
}
|
|
106
|
-
/** @description 滚轮滚动 */
|
|
107
|
-
_onWheelScroll(event) {
|
|
108
|
-
// 如果内容高度小于遮罩高度,则不滚动
|
|
109
|
-
if (this._content.height <= this._maskGraphics.height)
|
|
110
|
-
return;
|
|
111
|
-
let y = this._content.y - event.deltaY * (this._scrollSpeed / 100);
|
|
112
|
-
//如果到达顶部,则不滚动
|
|
113
|
-
if (y > 0) {
|
|
114
|
-
y = 0;
|
|
115
|
-
}
|
|
116
|
-
//如果到达底部,则不滚动
|
|
117
|
-
else if (Math.abs(y) >= this._content.height - this._maskGraphics.height) {
|
|
118
|
-
y = -(this._content.height - this._maskGraphics.height);
|
|
119
|
-
}
|
|
120
|
-
gsap.to(this._content, {
|
|
121
|
-
duration: 0.25,
|
|
122
|
-
ease: "power1.out",
|
|
123
|
-
y,
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
/** @description 惯性动画 */
|
|
127
|
-
_applyInertia() {
|
|
128
|
-
gsap.to(this._content, {
|
|
129
|
-
y: this._content.y + this._velocity * 250,
|
|
130
|
-
duration: 0.5,
|
|
131
|
-
ease: "power1.out",
|
|
132
|
-
onUpdate: this._limitScrollRange.bind(this),
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
/** @description 限制滚动范围 */
|
|
136
|
-
_limitScrollRange() {
|
|
137
|
-
//如果内容顶部离开了滚动容器顶部,则归位
|
|
138
|
-
if (this._content.y > 0) {
|
|
139
|
-
gsap.to(this._content, {
|
|
140
|
-
duration: 0.75,
|
|
141
|
-
y: 0,
|
|
142
|
-
ease: "elastic.out",
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
// 如果滚动距离大于内容高度减去遮罩高度
|
|
146
|
-
else if (Math.abs(this._content.y) >=
|
|
147
|
-
this._content.height - this._maskGraphics.height) {
|
|
148
|
-
// 如果内容高度大于遮罩高度,则滚动到底部
|
|
149
|
-
if (this._content.height > this._maskGraphics.height) {
|
|
150
|
-
const y = -(this._content.height - this._maskGraphics.height);
|
|
151
|
-
gsap.to(this._content, {
|
|
152
|
-
duration: 0.75,
|
|
153
|
-
y,
|
|
154
|
-
ease: "elastic.out",
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
// 否则静止不动
|
|
158
|
-
else {
|
|
159
|
-
gsap.to(this._content, {
|
|
160
|
-
duration: 0.25,
|
|
161
|
-
y: 0,
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { Container } from "pixi.js";
|
|
2
|
-
import { LibPixiContainer } from '../Base/LibPixiContainer';
|
|
3
|
-
export interface LibPixiScrollNumParams {
|
|
4
|
-
/** 滚动区域宽度 */
|
|
5
|
-
width: number;
|
|
6
|
-
/** 滚动区域高度 */
|
|
7
|
-
height: number;
|
|
8
|
-
/** 一页高度 */
|
|
9
|
-
pageHeight: number;
|
|
10
|
-
/** 滚动的容器 */
|
|
11
|
-
content: Container;
|
|
12
|
-
/** 总数 */
|
|
13
|
-
pageNum: number;
|
|
14
|
-
/** 松手回调 */
|
|
15
|
-
slideCallback?: (index: number) => void;
|
|
16
|
-
/** 滚动回调 */
|
|
17
|
-
scrollCallback?: (y: number, index: number) => void;
|
|
18
|
-
}
|
|
19
|
-
/** @description 通过鼠标或手指拖动数字列选择数字
|
|
20
|
-
* @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiScrollNum-数字滑动
|
|
21
|
-
*/
|
|
22
|
-
export declare class LibPixiScrollNum extends LibPixiContainer {
|
|
23
|
-
/** 当前幻灯片索引 */
|
|
24
|
-
private _currentIndex;
|
|
25
|
-
/** 滚动区域高度 */
|
|
26
|
-
private _scrollHeight;
|
|
27
|
-
/** 滑动区域高度 */
|
|
28
|
-
private _slideHeight;
|
|
29
|
-
/** 记录拖动开始时的Y坐标 */
|
|
30
|
-
private _startY;
|
|
31
|
-
/** 偏移量 */
|
|
32
|
-
private _offsetY;
|
|
33
|
-
/** 最大索引 */
|
|
34
|
-
private _pageNum;
|
|
35
|
-
/** 记录开始时间 */
|
|
36
|
-
private _startTime;
|
|
37
|
-
/** 是否正在拖动 */
|
|
38
|
-
private _isDragging;
|
|
39
|
-
/** 滑动内容 */
|
|
40
|
-
private _slideArea;
|
|
41
|
-
/** 滑动回调 */
|
|
42
|
-
private _slideCallback?;
|
|
43
|
-
/** 滚动回调 */
|
|
44
|
-
private _scrollCallback?;
|
|
45
|
-
constructor(params: LibPixiScrollNumParams);
|
|
46
|
-
/** @description 更新坐标
|
|
47
|
-
* @param y Y坐标
|
|
48
|
-
* @param index 页数索引
|
|
49
|
-
*/
|
|
50
|
-
updatePosition(y: number, index: number): void;
|
|
51
|
-
/** @description 滑动到指定索引
|
|
52
|
-
* @param index 页数索引
|
|
53
|
-
* @param animate 是否需要过渡动画
|
|
54
|
-
*/
|
|
55
|
-
slideTo(index: number, animate?: boolean): void;
|
|
56
|
-
/** @description 开始拖动 */
|
|
57
|
-
private _onDragStart;
|
|
58
|
-
/** @description 拖动中 */
|
|
59
|
-
private _onDragMove;
|
|
60
|
-
/** @description 结束拖动 */
|
|
61
|
-
private _onDragEnd;
|
|
62
|
-
}
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import { Graphics } from "pixi.js";
|
|
2
|
-
import gsap from "gsap";
|
|
3
|
-
import { LibPixiContainer } from '../Base/LibPixiContainer';
|
|
4
|
-
/** @description 通过鼠标或手指拖动数字列选择数字
|
|
5
|
-
* @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiScrollNum-数字滑动
|
|
6
|
-
*/
|
|
7
|
-
export class LibPixiScrollNum extends LibPixiContainer {
|
|
8
|
-
constructor(params) {
|
|
9
|
-
const { width, height, content, slideCallback, scrollCallback, pageNum, pageHeight, } = params;
|
|
10
|
-
super(width, height);
|
|
11
|
-
/** 当前幻灯片索引 */
|
|
12
|
-
this._currentIndex = 0;
|
|
13
|
-
/** 滚动区域高度 */
|
|
14
|
-
this._scrollHeight = 0;
|
|
15
|
-
/** 滑动区域高度 */
|
|
16
|
-
this._slideHeight = 0;
|
|
17
|
-
/** 记录拖动开始时的Y坐标 */
|
|
18
|
-
this._startY = 0;
|
|
19
|
-
/** 偏移量 */
|
|
20
|
-
this._offsetY = 0;
|
|
21
|
-
/** 最大索引 */
|
|
22
|
-
this._pageNum = 0;
|
|
23
|
-
/** 记录开始时间 */
|
|
24
|
-
this._startTime = new Date().getTime();
|
|
25
|
-
/** 是否正在拖动 */
|
|
26
|
-
this._isDragging = false;
|
|
27
|
-
//设置遮罩
|
|
28
|
-
const mask = new Graphics();
|
|
29
|
-
mask.beginFill(0xffffff);
|
|
30
|
-
mask.drawRect(0, 0, this.width, this.height);
|
|
31
|
-
mask.endFill();
|
|
32
|
-
this.addChild(mask);
|
|
33
|
-
this.mask = mask;
|
|
34
|
-
this._scrollHeight = height;
|
|
35
|
-
this._slideHeight = pageHeight;
|
|
36
|
-
this._slideArea = content;
|
|
37
|
-
this._slideCallback = slideCallback;
|
|
38
|
-
this._scrollCallback = scrollCallback;
|
|
39
|
-
this._pageNum = pageNum - 1;
|
|
40
|
-
this.addChild(this._slideArea);
|
|
41
|
-
this._slideArea.x = width / 2;
|
|
42
|
-
this._slideArea.y = this._scrollHeight / 2;
|
|
43
|
-
// 监听拖动事件
|
|
44
|
-
this.eventMode = "static";
|
|
45
|
-
this.cursor = "pointer";
|
|
46
|
-
this.on("pointerdown", this._onDragStart);
|
|
47
|
-
window.addEventListener("pointermove", this._onDragMove.bind(this));
|
|
48
|
-
window.addEventListener("pointerup", this._onDragEnd.bind(this));
|
|
49
|
-
}
|
|
50
|
-
/** @description 更新坐标
|
|
51
|
-
* @param y Y坐标
|
|
52
|
-
* @param index 页数索引
|
|
53
|
-
*/
|
|
54
|
-
updatePosition(y, index) {
|
|
55
|
-
this._slideArea.y = y;
|
|
56
|
-
this._currentIndex = index;
|
|
57
|
-
}
|
|
58
|
-
/** @description 滑动到指定索引
|
|
59
|
-
* @param index 页数索引
|
|
60
|
-
* @param animate 是否需要过渡动画
|
|
61
|
-
*/
|
|
62
|
-
slideTo(index, animate = true) {
|
|
63
|
-
var _a;
|
|
64
|
-
if (index < 0) {
|
|
65
|
-
// 回弹到第一张
|
|
66
|
-
gsap.to(this._slideArea, {
|
|
67
|
-
y: this._scrollHeight / 2,
|
|
68
|
-
duration: 0.25,
|
|
69
|
-
onUpdate: () => {
|
|
70
|
-
var _a;
|
|
71
|
-
(_a = this._scrollCallback) === null || _a === void 0 ? void 0 : _a.call(this, this._slideArea.y, this._currentIndex);
|
|
72
|
-
},
|
|
73
|
-
});
|
|
74
|
-
this._currentIndex = 0;
|
|
75
|
-
}
|
|
76
|
-
else if (index > this._pageNum) {
|
|
77
|
-
// 回弹到最后一张
|
|
78
|
-
gsap.to(this._slideArea, {
|
|
79
|
-
y: -this._pageNum * this._slideHeight + this._scrollHeight / 2,
|
|
80
|
-
duration: 0.5,
|
|
81
|
-
onUpdate: () => {
|
|
82
|
-
var _a;
|
|
83
|
-
(_a = this._scrollCallback) === null || _a === void 0 ? void 0 : _a.call(this, this._slideArea.y, this._currentIndex);
|
|
84
|
-
},
|
|
85
|
-
});
|
|
86
|
-
this._currentIndex = this._pageNum;
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
// 正常滑动
|
|
90
|
-
this._currentIndex = index;
|
|
91
|
-
gsap.to(this._slideArea, {
|
|
92
|
-
y: -this._currentIndex * this._slideHeight + this._scrollHeight / 2,
|
|
93
|
-
duration: animate ? 0.25 : 0.01,
|
|
94
|
-
onUpdate: () => {
|
|
95
|
-
var _a;
|
|
96
|
-
(_a = this._scrollCallback) === null || _a === void 0 ? void 0 : _a.call(this, this._slideArea.y, this._currentIndex);
|
|
97
|
-
},
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
(_a = this._slideCallback) === null || _a === void 0 ? void 0 : _a.call(this, this._currentIndex);
|
|
101
|
-
}
|
|
102
|
-
/** @description 开始拖动 */
|
|
103
|
-
_onDragStart(event) {
|
|
104
|
-
this._isDragging = true;
|
|
105
|
-
this._startY = event.data.global.y;
|
|
106
|
-
this._offsetY = this._slideArea.y;
|
|
107
|
-
gsap.killTweensOf(this._slideArea);
|
|
108
|
-
this._startTime = new Date().getTime();
|
|
109
|
-
}
|
|
110
|
-
/** @description 拖动中 */
|
|
111
|
-
_onDragMove(event) {
|
|
112
|
-
var _a;
|
|
113
|
-
if (!this._isDragging)
|
|
114
|
-
return;
|
|
115
|
-
const moveY = event.pageY - this._startY;
|
|
116
|
-
this._slideArea.y = this._offsetY + moveY;
|
|
117
|
-
(_a = this._scrollCallback) === null || _a === void 0 ? void 0 : _a.call(this, this._slideArea.y, this._currentIndex);
|
|
118
|
-
}
|
|
119
|
-
/** @description 结束拖动 */
|
|
120
|
-
_onDragEnd(event) {
|
|
121
|
-
if (!this._isDragging)
|
|
122
|
-
return;
|
|
123
|
-
this._isDragging = false;
|
|
124
|
-
const endTime = new Date().getTime() - this._startTime;
|
|
125
|
-
const slide = this._startY - event.pageY; // 计算滑动的距离
|
|
126
|
-
const slideSpeed = Math.abs(slide) / endTime; // 计算滑动速度
|
|
127
|
-
const speedThreshold = 0.275;
|
|
128
|
-
// 计算滑动的页面变化数,根据滑动距离来调整页码
|
|
129
|
-
const slideThreshold = this._slideHeight / 2;
|
|
130
|
-
// 计算实际的翻页增量,使用 `slide / this._slideHeight` 来计算滑动的页数
|
|
131
|
-
const pageChange = Math.round(slide / this._slideHeight);
|
|
132
|
-
// 如果滑动速度足够快,且滑动的距离大于阈值,强制翻页
|
|
133
|
-
if (Math.abs(slide) > slideThreshold || slideSpeed > speedThreshold) {
|
|
134
|
-
this._currentIndex += pageChange; // 这里会根据滑动的方向来增加或减少当前页码
|
|
135
|
-
}
|
|
136
|
-
// 防止超出页面的上下限
|
|
137
|
-
if (this._currentIndex < 0) {
|
|
138
|
-
this._currentIndex = 0; // 保证当前页码不小于 0
|
|
139
|
-
}
|
|
140
|
-
else if (this._currentIndex > this._pageNum) {
|
|
141
|
-
this._currentIndex = this._pageNum; // 保证当前页码不大于最大页码
|
|
142
|
-
}
|
|
143
|
-
// 执行滑动到目标页码
|
|
144
|
-
this.slideTo(this._currentIndex);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { Container } from "pixi.js";
|
|
2
|
-
import { LibPixiContainer } from '../Base/LibPixiContainer';
|
|
3
|
-
/** @description 类似轮播图,但是不会自动轮播
|
|
4
|
-
* @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiSlider-横向滑动图
|
|
5
|
-
*/
|
|
6
|
-
export declare class LibPixiSlider extends LibPixiContainer {
|
|
7
|
-
/** 当前幻灯片索引 */
|
|
8
|
-
private _currentIndex;
|
|
9
|
-
/** 滑动区域宽度 */
|
|
10
|
-
private _slideWidth;
|
|
11
|
-
/** 记录拖动开始时的X坐标 */
|
|
12
|
-
private _startX;
|
|
13
|
-
/** 偏移量 */
|
|
14
|
-
private _offsetX;
|
|
15
|
-
/** 最大索引 */
|
|
16
|
-
private _pageNum;
|
|
17
|
-
/** 记录开始时间 */
|
|
18
|
-
private _startTime;
|
|
19
|
-
private _isDragging;
|
|
20
|
-
/** 滑动内容 */
|
|
21
|
-
private _slideArea;
|
|
22
|
-
/** @description 滑动回调 */
|
|
23
|
-
private slideCallback;
|
|
24
|
-
/**
|
|
25
|
-
* @param width 宽度
|
|
26
|
-
* @param height 高度
|
|
27
|
-
* @param content 内容
|
|
28
|
-
* @param slideCallback 滑动结束回调
|
|
29
|
-
*/
|
|
30
|
-
constructor(width: number, height: number, content: Container, slideCallback: (pageIndex: number, _pageNum: number) => void);
|
|
31
|
-
/** @description 上一页 */
|
|
32
|
-
prev(): void;
|
|
33
|
-
/** @description 下一页 */
|
|
34
|
-
next(): void;
|
|
35
|
-
/** @description 滑动到指定索引
|
|
36
|
-
* @param index 索引
|
|
37
|
-
*/
|
|
38
|
-
private _slideTo;
|
|
39
|
-
/** @description 开始拖动 */
|
|
40
|
-
private _onDragStart;
|
|
41
|
-
/** @description 拖动中 */
|
|
42
|
-
private _onDragMove;
|
|
43
|
-
/** @description 结束拖动 */
|
|
44
|
-
private _onDragEnd;
|
|
45
|
-
}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import gsap from "gsap";
|
|
2
|
-
import { libPixiOverflowHidden } from "../../Utils/LibPixiOverflowHidden";
|
|
3
|
-
import { LibPixiContainer } from '../Base/LibPixiContainer';
|
|
4
|
-
/** @description 类似轮播图,但是不会自动轮播
|
|
5
|
-
* @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiSlider-横向滑动图
|
|
6
|
-
*/
|
|
7
|
-
export class LibPixiSlider extends LibPixiContainer {
|
|
8
|
-
/**
|
|
9
|
-
* @param width 宽度
|
|
10
|
-
* @param height 高度
|
|
11
|
-
* @param content 内容
|
|
12
|
-
* @param slideCallback 滑动结束回调
|
|
13
|
-
*/
|
|
14
|
-
constructor(width, height, content, slideCallback) {
|
|
15
|
-
super(width, height);
|
|
16
|
-
/** 当前幻灯片索引 */
|
|
17
|
-
this._currentIndex = 0;
|
|
18
|
-
/** 滑动区域宽度 */
|
|
19
|
-
this._slideWidth = 0;
|
|
20
|
-
/** 记录拖动开始时的X坐标 */
|
|
21
|
-
this._startX = 0;
|
|
22
|
-
/** 偏移量 */
|
|
23
|
-
this._offsetX = 0;
|
|
24
|
-
/** 最大索引 */
|
|
25
|
-
this._pageNum = 0;
|
|
26
|
-
/** 记录开始时间 */
|
|
27
|
-
this._startTime = new Date().getTime();
|
|
28
|
-
/* 是否正在拖动 */
|
|
29
|
-
this._isDragging = false;
|
|
30
|
-
libPixiOverflowHidden(this);
|
|
31
|
-
this._slideWidth = width;
|
|
32
|
-
this._slideArea = content;
|
|
33
|
-
this.slideCallback = slideCallback;
|
|
34
|
-
this._pageNum = Math.floor(content.width / this._slideWidth) - 1;
|
|
35
|
-
this.addChild(content);
|
|
36
|
-
// 监听拖动事件
|
|
37
|
-
this.eventMode = "static";
|
|
38
|
-
this.cursor = "pointer";
|
|
39
|
-
this.on("pointerdown", this._onDragStart);
|
|
40
|
-
window.addEventListener("pointermove", this._onDragMove.bind(this));
|
|
41
|
-
window.addEventListener("pointerup", this._onDragEnd.bind(this));
|
|
42
|
-
}
|
|
43
|
-
/** @description 上一页 */
|
|
44
|
-
prev() {
|
|
45
|
-
this._slideTo(this._currentIndex - 1);
|
|
46
|
-
}
|
|
47
|
-
/** @description 下一页 */
|
|
48
|
-
next() {
|
|
49
|
-
this._slideTo(this._currentIndex + 1);
|
|
50
|
-
}
|
|
51
|
-
/** @description 滑动到指定索引
|
|
52
|
-
* @param index 索引
|
|
53
|
-
*/
|
|
54
|
-
_slideTo(index) {
|
|
55
|
-
if (index < 0) {
|
|
56
|
-
// 回弹到第一张
|
|
57
|
-
gsap.to(this._slideArea, { x: 0, duration: 0.25 });
|
|
58
|
-
this._currentIndex = 0;
|
|
59
|
-
}
|
|
60
|
-
else if (index > this._pageNum) {
|
|
61
|
-
// 回弹到最后一张
|
|
62
|
-
gsap.to(this._slideArea, {
|
|
63
|
-
x: -this._pageNum * this._slideWidth,
|
|
64
|
-
duration: 0.5,
|
|
65
|
-
});
|
|
66
|
-
this._currentIndex = this._pageNum;
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
// 正常滑动
|
|
70
|
-
this._currentIndex = index;
|
|
71
|
-
gsap.to(this._slideArea, {
|
|
72
|
-
x: -this._currentIndex * this._slideWidth,
|
|
73
|
-
duration: 0.25,
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
this.slideCallback(this._currentIndex, this._pageNum);
|
|
77
|
-
}
|
|
78
|
-
/** @description 开始拖动 */
|
|
79
|
-
_onDragStart(event) {
|
|
80
|
-
this._isDragging = true;
|
|
81
|
-
this._startX = event.global.x;
|
|
82
|
-
this._offsetX = this._slideArea.x;
|
|
83
|
-
gsap.killTweensOf(this._slideArea);
|
|
84
|
-
this._startTime = new Date().getTime();
|
|
85
|
-
}
|
|
86
|
-
/** @description 拖动中 */
|
|
87
|
-
_onDragMove(event) {
|
|
88
|
-
if (!this._isDragging)
|
|
89
|
-
return;
|
|
90
|
-
const moveX = event.pageX - this._startX;
|
|
91
|
-
this._slideArea.x = this._offsetX + moveX;
|
|
92
|
-
}
|
|
93
|
-
/** @description 结束拖动 */
|
|
94
|
-
_onDragEnd(event) {
|
|
95
|
-
if (!this._isDragging)
|
|
96
|
-
return;
|
|
97
|
-
this._isDragging = false;
|
|
98
|
-
const endTime = new Date().getTime() - this._startTime;
|
|
99
|
-
const slide = this._startX - event.pageX;
|
|
100
|
-
const slideSpeed = Math.abs(slide) / endTime;
|
|
101
|
-
//滑动距离阈值,滑动到一半以上必定翻页
|
|
102
|
-
const slideThreshold = this._slideWidth / 2;
|
|
103
|
-
//滑动速度阈值,滑动速度大于这个值,必定翻页
|
|
104
|
-
const speedThreshold = 0.275;
|
|
105
|
-
//如果滑动距离大于阈值,或速度大于阈值翻页
|
|
106
|
-
if (Math.abs(slide) > slideThreshold || slideSpeed > speedThreshold) {
|
|
107
|
-
slide > 0 ? this._currentIndex++ : this._currentIndex--;
|
|
108
|
-
}
|
|
109
|
-
this._slideTo(this._currentIndex);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { Container } from "pixi.js";
|
|
2
|
-
export interface LibPixiSubAddMinMaxParams {
|
|
3
|
-
/** 最小按钮 */
|
|
4
|
-
minBtn: Container;
|
|
5
|
-
/** 最大按钮 */
|
|
6
|
-
maxBtn: Container;
|
|
7
|
-
/** 增加按钮 */
|
|
8
|
-
subBtn: Container;
|
|
9
|
-
/** 减少按钮 */
|
|
10
|
-
addBtn: Container;
|
|
11
|
-
/** 初始下注索引 */
|
|
12
|
-
initialBetIndex: number;
|
|
13
|
-
/** 下注金额列表 */
|
|
14
|
-
betAmountListLength: number;
|
|
15
|
-
/** 金额更新回调 */
|
|
16
|
-
onAmountIndex: (index: number) => void;
|
|
17
|
-
}
|
|
18
|
-
/** @description 最小、最大按钮和增减按钮功能及置灰逻辑
|
|
19
|
-
* @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiSubAddMinMax-数字控制器
|
|
20
|
-
*/
|
|
21
|
-
export declare class LibPixiSubAddMinMax {
|
|
22
|
-
/** 步进器 */
|
|
23
|
-
private baseNumSteper;
|
|
24
|
-
/** 最大最小按钮 */
|
|
25
|
-
private minBtn;
|
|
26
|
-
private maxBtn;
|
|
27
|
-
/** 增加减少按钮 */
|
|
28
|
-
private subBtn;
|
|
29
|
-
private addBtn;
|
|
30
|
-
/** 金额列表数量 */
|
|
31
|
-
private betAmountListLength;
|
|
32
|
-
/** 金额更新回调 */
|
|
33
|
-
onAmountIndex: (index: number) => void;
|
|
34
|
-
constructor(params: LibPixiSubAddMinMaxParams);
|
|
35
|
-
/** @description 点击最小按钮 */
|
|
36
|
-
min(): void;
|
|
37
|
-
/** @description 点击最大按钮 */
|
|
38
|
-
max(): void;
|
|
39
|
-
/** @description 点击减少按钮 */
|
|
40
|
-
sub(): void;
|
|
41
|
-
/** @description 点击增加按钮 */
|
|
42
|
-
add(): void;
|
|
43
|
-
/** @description 改变最小最大按钮状态及回调
|
|
44
|
-
* @param index 索引
|
|
45
|
-
*/
|
|
46
|
-
minMaxUpdateIndex(index: number): void;
|
|
47
|
-
/** @description 设置最大最小按钮置灰及恢复 */
|
|
48
|
-
private _setGrey;
|
|
49
|
-
}
|