diff --git a/scss/_utilities.scss b/scss/_utilities.scss
index 6b20fd62..0dc80bcb 100644
--- a/scss/_utilities.scss
+++ b/scss/_utilities.scss
@@ -1476,6 +1476,12 @@
word-wrap: break-word;
}
+@keyframes resizeSensor {
+ from {
+ opacity: 0;
+ }
+}
+
@media (min-width: 768px) {
.col-sm-2-4 {
width: 20%;
diff --git a/src/utils/resize-sensor.ts b/src/utils/resize-sensor.ts
index eb89ba60..cf3eb8a1 100644
--- a/src/utils/resize-sensor.ts
+++ b/src/utils/resize-sensor.ts
@@ -37,42 +37,39 @@ function attachResizeEvent(element: HTMLElement, resized: Function) {
return;
}
- (element as any).resizeSensor = document.createElement('div');
- (element as any).resizeSensor.className = 'resize-sensor';
+ const resizeSensor = ((element as any).resizeSensor = document.createElement(
+ 'div'
+ ));
+ resizeSensor.className = 'resize-sensor';
let style =
'position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: scroll; z-index: -1; visibility: hidden;';
let styleChild = 'position: absolute; left: 0; top: 0;';
- (element as any).resizeSensor.style.cssText = style;
- (element as any).resizeSensor.innerHTML =
- '
' +
- '';
- element.appendChild((element as any).resizeSensor);
+ resizeSensor.style.cssText = style;
+ resizeSensor.innerHTML = `
+
+
+ `;
+ // 要定义 resizeSensor 这个动画,靠这个监听出现。
+ element.appendChild(resizeSensor);
if (!~['fixed', 'absolute'].indexOf(getComputedStyle(element, 'position'))) {
element.style.position = 'relative';
}
- let expand = (element as any).resizeSensor.childNodes[0];
- let expandChild = expand.childNodes[0];
- let shrink = (element as any).resizeSensor.childNodes[1];
- let shrinkChild = shrink.childNodes[0];
+ const expand = resizeSensor.children[0] as HTMLElement;
+ const expandChild = expand.children[0] as HTMLElement;
+ const shrink = resizeSensor.children[1] as HTMLElement;
+ // let shrinkChild = shrink.children[0] as HTMLElement;
+ const appear = resizeSensor.children[2] as HTMLElement;
let lastWidth: number, lastHeight: number;
- let reset = function() {
+ const reset = function() {
expandChild.style.width = expand.offsetWidth + 10 + 'px';
expandChild.style.height = expand.offsetHeight + 10 + 'px';
expand.scrollLeft = expand.scrollWidth;
@@ -99,7 +96,7 @@ function attachResizeEvent(element: HTMLElement, resized: Function) {
}
};
- let onScroll = function() {
+ let onScroll = function(e: Event) {
if (
element.offsetWidth != lastWidth ||
element.offsetHeight != lastHeight
@@ -111,6 +108,7 @@ function attachResizeEvent(element: HTMLElement, resized: Function) {
addEvent(expand, 'scroll', onScroll);
addEvent(shrink, 'scroll', onScroll);
+ addEvent(appear, 'animationstart', reset);
}
function detach(element: HTMLElement) {