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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pixuireactcomponents",
3
- "version": "1.3.58",
3
+ "version": "1.3.60",
4
4
  "description": "pixui react components",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -1,6 +1,2 @@
1
- /**
2
- * + [已解决]为什么重新创建 CustomScrollBar()时 isDragingSBlock 会被重置为false? 在外部回调中不能使用state
3
- *
4
- */
5
1
  import { h } from 'preact';
6
2
  export declare function ScrollBar(props: any): h.JSX.Element;
@@ -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
- return (h("div", { id: "sframe", style: sFrameStyle },
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, ")");