Skip to content

Commit 86f22ca

Browse files
committed
add window is undefined return, restructure scroll-screen ant-design/ant-design-landing#165
1 parent 208fc44 commit 86f22ca

File tree

8 files changed

+133
-146
lines changed

8 files changed

+133
-146
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ Use: scroll a screen window;
191191

192192
| name | type | default | description |
193193
|-----------|----------------|---------|----------------|
194+
| location | array | [] | llocation of scrolling screen, only element ID is supported in array |
194195
| duration | number | 450 | scroll duration |
195196
| ease | string | `easeInOutQuad` | easing |
196197
| docHeight | number | null | Custom html height |

examples/scrollScreen.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,12 @@ const Link = ScrollAnim.Link;
1313
const Element = ScrollAnim.Element;
1414
const ScrollOverPack = ScrollAnim.OverPack;
1515
const EventListener = ScrollAnim.Event;
16-
ScrollAnim.scrollScreen.init({ loop: true });
16+
1717
class Demo extends React.Component {
1818
componentDidMount() {
1919
// 添加改变窗口事件,可加setTimeout
2020
EventListener.addEventListener('resize.userResize', this.barAnimate.bind(this));
21+
ScrollAnim.scrollScreen.init({ loop: true, location: ['page0', 'page1', 'page2', 'page3'] });
2122
}
2223

2324
onFocus = (e) => {

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "rc-scroll-anim",
3-
"version": "2.6.3",
3+
"version": "2.7.0",
44
"description": "scroll-anim anim component for react",
55
"keywords": [
66
"react",

src/Mapped.jsx

-30
This file was deleted.

src/ScrollElement.jsx

+4-9
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
import React from 'react';
22
import ReactDOM from 'react-dom';
33
import PropTypes from 'prop-types';
4-
import mapped from './Mapped';
54
import EventListener from './EventDispatcher';
6-
import { noop, currentScrollTop, transformArguments, windowHeight } from './util';
5+
import { noop, currentScrollTop, transformArguments, windowHeight, windowIsUndefined } from './util';
76

87
class ScrollElement extends React.Component {
98
static propTypes = {
@@ -44,13 +43,10 @@ class ScrollElement extends React.Component {
4443
}
4544

4645
componentDidMount() {
47-
this.dom = ReactDOM.findDOMNode(this);
48-
if (this.props.location) {
49-
this.dom = document.getElementById(this.props.location);
50-
mapped.register(this.props.location, this.dom);
51-
} else if (this.props.id) {
52-
mapped.register(this.props.id, this.dom);
46+
if (windowIsUndefined) {
47+
return;
5348
}
49+
this.dom = ReactDOM.findDOMNode(this);
5450
const date = Date.now();
5551
this.target = this.props.targetId && document.getElementById(this.props.targetId);
5652

@@ -60,7 +56,6 @@ class ScrollElement extends React.Component {
6056
}
6157

6258
componentWillUnmount() {
63-
mapped.unRegister(this.props.id);
6459
EventListener.removeEventListener(this.eventType, this.scrollEventListener, this.target);
6560
}
6661

src/ScrollOverPack.jsx

+8-5
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React, { createElement } from 'react';
22
import PropTypes from 'prop-types';
33
import EventListener from './EventDispatcher';
44
import ScrollElement from './ScrollElement';
5-
import { toArrayChildren, noop } from './util';
5+
import { toArrayChildren, noop, windowIsUndefined } from './util';
66

77
class ScrollOverPack extends ScrollElement {
88
static propTypes = {
@@ -95,9 +95,9 @@ class ScrollOverPack extends ScrollElement {
9595
}
9696

9797
render() {
98-
const {
99-
playScale,
100-
replay,
98+
const {
99+
playScale,
100+
replay,
101101
component,
102102
always,
103103
scrollEvent,
@@ -108,7 +108,10 @@ class ScrollOverPack extends ScrollElement {
108108
onScroll,
109109
componentProps,
110110
...props
111-
} = this.props;
111+
} = this.props;
112+
if (windowIsUndefined) {
113+
return createElement(component, { ...props, ...componentProps });
114+
}
112115
let childToRender;
113116
if (!this.oneEnter) {
114117
const show = !appear;

0 commit comments

Comments
 (0)