zent
Version:
一套前端设计语言和基于React的实现
41 lines (33 loc) • 1.03 kB
JavaScript
import React, { PureComponent, Component } from 'react';
import { findDOMNode } from 'react-dom';
import PropTypes from 'prop-types';
import isFunction from 'lodash/isFunction';
import scroll from '../utils/scroll';
import offset from '../utils/offset';
function scrollNodeToTop(node, offsets) {
const pos = offset(node);
const top = isFunction(offsets.top)
? offsets.top(pos.top)
: pos.top + offsets.top;
const left = isFunction(offsets.left)
? offsets.left(pos.left)
: pos.left + offsets.left;
scroll(document.body, left, top);
}
export default class DesignPreviewItem extends (PureComponent || Component) {
static propTypes = {
children: PropTypes.node.isRequired,
prefix: PropTypes.string
};
static defaultProps = {
prefix: 'zent'
};
render() {
const { children, prefix } = this.props;
return <div className={`${prefix}-design-preview-item`}>{children}</div>;
}
scrollTop(offsets) {
const node = findDOMNode(this);
scrollNodeToTop(node, offsets);
}
}