@fonixtree/magic-design 1.0.150 → 1.0.151

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.
@@ -81,13 +81,15 @@ function (_super) {
81
81
  }
82
82
  }, rest), /*#__PURE__*/_react["default"].createElement(_VideoItem["default"], {
83
83
  data: data
84
- }), data.groupName.open && /*#__PURE__*/_react["default"].createElement(_components.MetaText, {
85
- className: "img-text",
84
+ }), data.groupName.open && /*#__PURE__*/_react["default"].createElement("div", {
85
+ className: "text-perch"
86
+ }, /*#__PURE__*/_react["default"].createElement(_components.MetaText, {
87
+ className: "canvas-ignore",
86
88
  data: data.groupName,
87
89
  style: {
88
90
  pointerEvents: (0, _coreUtil.isDesignMode)() ? 'unset' : 'none'
89
91
  }
90
- })));
92
+ }))));
91
93
  };
92
94
 
93
95
  CardItem.defaultProps = {
@@ -1,7 +1,10 @@
1
1
  .slide-image-card-item-wrap {
2
2
  cursor: pointer;
3
3
 
4
- .img-text {
4
+ .video-wrap {}
5
+
6
+ .text-perch {
5
7
  margin-top: 20px;
8
+ height: 30px;
6
9
  }
7
10
  }
@@ -53,7 +53,8 @@ function (_super) {
53
53
  playing: false,
54
54
  inside: false,
55
55
  isNearCenter: false,
56
- flag: false
56
+ flag: false,
57
+ corner: ''
57
58
  };
58
59
  _this.videoRef = /*#__PURE__*/_react["default"].createRef();
59
60
  _this.cardRef = /*#__PURE__*/_react["default"].createRef();
@@ -94,7 +95,7 @@ function (_super) {
94
95
 
95
96
  _this.checkMouseNearCenter = function (e, radius) {
96
97
  if (radius === void 0) {
97
- radius = 35;
98
+ radius = 20;
98
99
  }
99
100
 
100
101
  var center = _this.getCenter(e.target); // 计算鼠标与中心的距离
@@ -102,6 +103,21 @@ function (_super) {
102
103
 
103
104
  var distance = Math.sqrt(Math.pow(e.clientX - center.x, 2) + Math.pow(e.clientY - center.y, 2));
104
105
  return distance <= radius;
106
+ }; // 判断鼠标方位
107
+
108
+
109
+ _this.getMousePos = function (e) {
110
+ var rect = e.target.getBoundingClientRect();
111
+ var x = e.clientX - rect.left; // 鼠标相对于元素的 X 坐标
112
+
113
+ var y = e.clientY - rect.top; // 鼠标相对于元素的 Y 坐标
114
+ // 判断区域
115
+
116
+ var isLeft = x < rect.width / 2;
117
+ var isTop = y < rect.height / 2;
118
+ var corner = '';
119
+ if (isLeft && isTop) corner = 'topLeft';else if (!isLeft && isTop) corner = 'topRight';else if (isLeft && !isTop) corner = 'bottomLeft';else corner = 'bottomRight';
120
+ return corner;
105
121
  };
106
122
 
107
123
  _this.handleMouseMove = (0, _lodash["default"])(function (e) {
@@ -116,71 +132,78 @@ function (_super) {
116
132
 
117
133
  var isNear = _this.checkMouseNearCenter(e);
118
134
 
135
+ var corner = _this.getMousePos(e);
136
+
119
137
  if (isNear) _this.setState({
120
138
  flag: true
121
139
  });
122
140
 
123
141
  _this.setState({
124
142
  isNearCenter: isNear,
125
- inside: true
143
+ inside: true,
144
+ corner: corner
126
145
  });
127
146
  });
128
147
 
129
- _this.initAnim = function () {
130
- var dom = _this.cardRef.current;
131
- dom.addEventListener('mousemove', _this.handleMouseMove);
132
- dom.addEventListener('mouseleave', function () {
133
- _this.setState({
134
- inside: false,
135
- flag: false
136
- });
137
- }); // 窗口大小变化时重新计算中心
138
- // window.addEventListener('resize', () => {
139
- // this.setState({
140
- // inside: false,
141
- // });
142
- // });
148
+ _this.handleMouseLeave = function () {
149
+ _this.setState({
150
+ inside: false,
151
+ flag: false,
152
+ corner: ''
153
+ });
143
154
  };
144
155
 
145
156
  return _this;
146
157
  }
147
158
 
148
159
  VideoItem.prototype.componentDidMount = function () {
149
- this.initAnim();
160
+ var dom = this.cardRef.current;
161
+ dom.addEventListener('mousemove', this.handleMouseMove);
162
+ dom.addEventListener('mouseleave', this.handleMouseLeave);
163
+ };
164
+
165
+ VideoItem.prototype.componentWillUnmount = function () {
166
+ var dom = this.cardRef.current;
167
+ dom.removeEventListener('mousemove', this.handleMouseMove);
168
+ dom.removeEventListener('mouseleave', this.handleMouseLeave);
150
169
  };
151
170
 
152
171
  VideoItem.prototype.render = function () {
153
- var _a, _b, _c, _d, _e, _f;
172
+ var _a, _b;
173
+
174
+ var _c, _d, _e, _f, _g, _h, _j;
154
175
 
155
176
  var data = this.props.data;
156
- var _g = this.state,
157
- playing = _g.playing,
158
- inside = _g.inside,
159
- isNearCenter = _g.isNearCenter,
160
- flag = _g.flag;
177
+ var _k = this.state,
178
+ playing = _k.playing,
179
+ inside = _k.inside,
180
+ isNearCenter = _k.isNearCenter,
181
+ flag = _k.flag,
182
+ corner = _k.corner;
161
183
  return /*#__PURE__*/_react["default"].createElement("div", {
162
184
  ref: this.cardRef,
163
- className: (0, _classnames["default"])('slide-image-video-wrap', {
164
- hover: inside && !isNearCenter && !flag
165
- }),
185
+ className: (0, _classnames["default"])('slide-image-video-wrap', (_a = {}, _a[corner] = inside && !isNearCenter && !flag, _a)),
166
186
  onMouseEnter: this.onMouseEnter,
167
187
  onMouseLeave: this.onMouseLeave
168
- }, ((_a = data.video) === null || _a === void 0 ? void 0 : _a.sourceUrl) && /*#__PURE__*/_react["default"].createElement("video", {
188
+ }, ((_c = data.video) === null || _c === void 0 ? void 0 : _c.sourceUrl) && /*#__PURE__*/_react["default"].createElement("video", {
169
189
  ref: this.videoRef,
190
+ className: "canvas-ignore",
170
191
  loop: true,
171
192
  muted: true,
172
- playsinline: true
193
+ playsinline: true,
194
+ style: {
195
+ visibility: playing ? 'visible' : 'hidden'
196
+ }
173
197
  }, /*#__PURE__*/_react["default"].createElement("source", {
174
- src: (_b = data.video) === null || _b === void 0 ? void 0 : _b.sourceUrl,
198
+ src: (_d = data.video) === null || _d === void 0 ? void 0 : _d.sourceUrl,
175
199
  type: "video/mp4"
176
- })), ((_c = data.overilay) === null || _c === void 0 ? void 0 : _c.open) && /*#__PURE__*/_react["default"].createElement("img", {
200
+ })), ((_e = data.overilay) === null || _e === void 0 ? void 0 : _e.open) && /*#__PURE__*/_react["default"].createElement("img", {
177
201
  alt: "",
178
- className: (0, _classnames["default"])('video-img', {
179
- cover: (_d = data.video) === null || _d === void 0 ? void 0 : _d.sourceUrl
180
- }),
181
- src: (_f = (_e = data.overilay) === null || _e === void 0 ? void 0 : _e.content) === null || _f === void 0 ? void 0 : _f.pcImgSrc,
202
+ className: (0, _classnames["default"])('video-img', (_b = {}, _b['canvas-ignore'] = (_f = data.video) === null || _f === void 0 ? void 0 : _f.sourceUrl, _b)),
203
+ src: (_h = (_g = data.overilay) === null || _g === void 0 ? void 0 : _g.content) === null || _h === void 0 ? void 0 : _h.pcImgSrc,
182
204
  style: {
183
- visibility: playing ? 'hidden' : 'visible'
205
+ visibility: playing ? 'hidden' : 'visible',
206
+ zIndex: ((_j = data.video) === null || _j === void 0 ? void 0 : _j.sourceUrl) ? 3 : 0
184
207
  }
185
208
  }));
186
209
  };
@@ -1,41 +1,86 @@
1
1
  .slide-image-video-wrap {
2
2
  position: relative;
3
- transition: border-radius 0.1s linear;
3
+ transition: border-radius 0.2s ease;
4
4
  overflow: hidden;
5
+ cursor: pointer;
5
6
  --dx: calc(var(--size) - var(--x));
6
7
  --dy: calc(var(--size) - var(--y));
7
- cursor: pointer;
8
8
 
9
- &.hover {
10
- cursor: pointer;
9
+ // &.hover {
10
+ // border-radius:
11
+ // ~"calc(var(--x)/var(--size)*100%)"
12
+ // ~"calc(var(--dx)/var(--size)*100%)"
13
+ // ~"calc(var(--dx)/var(--size)*100%)"
14
+ // ~"calc(var(--x)/var(--size)*100%) /"
15
+ // ~"calc(var(--y)/var(--size)*100%)"
16
+ // ~"calc(var(--y)/var(--size)*100%)"
17
+ // ~"calc(var(--dy)/var(--size)*100%)"
18
+ // ~"calc(var(--dy)/var(--size)*100%)";
19
+ // }
20
+
21
+ &.topLeft {
11
22
  border-radius:
12
23
  ~"calc(var(--x)/var(--size)*100%)"
13
- ~"calc(var(--dx)/var(--size)*100%)"
14
- ~"calc(var(--dx)/var(--size)*100%)"
15
- ~"calc(var(--x)/var(--size)*100%) /"
24
+ ~"0"
25
+ ~"0"
26
+ ~"0 /"
27
+ ~"calc(var(--y)/var(--size)*100%)"
28
+ ~"0"
29
+ ~"0"
30
+ ~"0";
31
+ }
32
+
33
+ &.topRight {
34
+ border-radius:
35
+ ~"0"
36
+ ~"calc(var(--x)/var(--size)*100%)"
37
+ ~"0"
38
+ ~"0 /"
39
+ ~"0"
16
40
  ~"calc(var(--y)/var(--size)*100%)"
41
+ ~"0"
42
+ ~"0";
43
+ }
44
+
45
+ &.bottomRight {
46
+ border-radius:
47
+ ~"0"
48
+ ~"0"
49
+ ~"calc(var(--x)/var(--size)*100%)"
50
+ ~"0 /"
51
+ ~"0"
52
+ ~"0"
17
53
  ~"calc(var(--y)/var(--size)*100%)"
18
- ~"calc(var(--dy)/var(--size)*100%)"
19
- ~"calc(var(--dy)/var(--size)*100%)";
54
+ ~"0";
55
+ }
56
+
57
+ &.bottomLeft {
58
+ border-radius:
59
+ ~"0"
60
+ ~"0"
61
+ ~"0"
62
+ ~"calc(var(--x)/var(--size)*100%) /"
63
+ ~"0"
64
+ ~"0"
65
+ ~"0"
66
+ ~"calc(var(--y)/var(--size)*100%)";
20
67
  }
21
68
 
22
69
  video {
70
+ position: absolute;
71
+ top: 0;
72
+ right: 0;
73
+ left: 0;
74
+ bottom: 0;
75
+ object-fit: cover;
23
76
  width: 100%;
77
+ height: 100%;
78
+ z-index: 2;
24
79
  }
25
80
 
26
81
  .video-img {
27
82
  width: 100%;
28
-
29
- &.cover {
30
- position: absolute;
31
- top: 0;
32
- right: 0;
33
- left: 0;
34
- bottom: 0;
35
- object-fit: cover;
36
- width: 100%;
37
- height: 100%;
38
- z-index: 0;
39
- }
83
+ position: relative;
84
+ z-index: 0;
40
85
  }
41
86
  }