pixuireactcomponents 1.3.58 → 1.3.60
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/package.json
CHANGED
|
@@ -9,12 +9,8 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
-
/**
|
|
13
|
-
* + [已解决]为什么重新创建 CustomScrollBar()时 isDragingSBlock 会被重置为false? 在外部回调中不能使用state
|
|
14
|
-
*
|
|
15
|
-
*/
|
|
16
12
|
import { h } from 'preact';
|
|
17
|
-
import { useState, useEffect } from 'preact/hooks';
|
|
13
|
+
import { useImperativeHandle, useState, useEffect } from 'preact/hooks';
|
|
18
14
|
var sWindow; // 滚动窗口
|
|
19
15
|
var sBlock; // 滚动条
|
|
20
16
|
var sFrame; // 滚动条外框
|
|
@@ -24,6 +20,7 @@ export function ScrollBar(props) {
|
|
|
24
20
|
var _a = useState(0), sBlockY = _a[0], setSBlockY = _a[1]; // sBlock的Top值, block顶部相对于frames上边的差值
|
|
25
21
|
var _b = useState({}), sBlockStyle = _b[0], setSBlockStyle = _b[1];
|
|
26
22
|
var _c = useState({}), sFrameStyle = _c[0], setSFrameStyle = _c[1];
|
|
23
|
+
var _d = useState(false), hiddenBar = _d[0], setHiddenBar = _d[1];
|
|
27
24
|
setSFrameStyle(props.style);
|
|
28
25
|
useEffect(function () {
|
|
29
26
|
// 初始化的 useEffect,其中只能添加初始化方法
|
|
@@ -44,6 +41,15 @@ export function ScrollBar(props) {
|
|
|
44
41
|
console.warn('[CustomScrollBar][Error] 内部错误,无法找到 sBlock 或 sFrame!');
|
|
45
42
|
return;
|
|
46
43
|
}
|
|
44
|
+
// 如果 sWindow 尺寸 > Content 尺寸,无需滑动,隐藏sBar
|
|
45
|
+
var swindow_height = sWindow.getBoundingClientRect().height; // 滑动窗口高
|
|
46
|
+
var content_height = sWindow.scrollHeight;
|
|
47
|
+
if (content_height <= swindow_height) {
|
|
48
|
+
setHiddenBar(true);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
setHiddenBar(false);
|
|
52
|
+
}
|
|
47
53
|
sWindow === null || sWindow === void 0 ? void 0 : sWindow.addEventListener('scroll', sWindowScrolling);
|
|
48
54
|
// 设置背景图
|
|
49
55
|
sBlock.style.backgroundImage = "url(".concat(props.sBlockImgNormal, ")");
|
|
@@ -118,7 +124,19 @@ export function ScrollBar(props) {
|
|
|
118
124
|
sWindow.scrollTop = content_scrollTop;
|
|
119
125
|
}
|
|
120
126
|
};
|
|
121
|
-
|
|
127
|
+
useImperativeHandle(props.eventRef, function () { return ({
|
|
128
|
+
scrollTo: scrollTo,
|
|
129
|
+
}); });
|
|
130
|
+
// 重设滚动轴, x预留, y为距离顶部的像素值
|
|
131
|
+
var scrollTo = function (x, y) {
|
|
132
|
+
if (typeof y === 'number') {
|
|
133
|
+
sWindow.scrollTop = y;
|
|
134
|
+
}
|
|
135
|
+
// 停止滚动
|
|
136
|
+
sWindow.style.overflow = 'hidden';
|
|
137
|
+
sWindow.style.overflow = 'scroll';
|
|
138
|
+
};
|
|
139
|
+
return (h("div", { id: "sframe", style: sFrameStyle }, hiddenBar ? null :
|
|
122
140
|
h("div", { id: "sblock", style: sBlockStyle, draggable: true, onDragStart: function (event) {
|
|
123
141
|
sBlock.style.backgroundImage = "url(".concat(props.sBlockImgClick, ")");
|
|
124
142
|
sFrame.style.backgroundImage = "url(".concat(props.sFrameImgClick, ")");
|