以下是来自github的demo0-simple-transition的代码。 Link 如何向移动的div元素添加内容。 希望使用这种变体来运行飞出菜单,但似乎无法弄清楚如何将内部内容融入其中。 感谢
import React from 'react';
import {Motion, spring} from '../../src/react-motion';
const Demo = React.createClass({
getInitialState() {
return {open: false};
},
handleMouseDown() {
this.setState({open: !this.state.open});
},
handleTouchStart(e) {
e.preventDefault();
this.handleMouseDown();
},
render() {
return (
<div>
<button
onMouseDown={this.handleMouseDown}
onTouchStart={this.handleTouchStart}>
Toggle
</button>
<Motion style={{x: spring(this.state.open ? 400 : 0)}}>
{({x}) =>
// children is a callback which should accept the current value of
// `style`
<div className="demo0">
<div className="demo0-block" style={{
WebkitTransform: `translate3d(${x}px, 0, 0)`,
transform: `translate3d(${x}px, 0, 0)`,
}} />
</div>
}
</Motion>
</div>
);
},
});
export default Demo;
答案 0 :(得分:1)
这就是你的React Motion组件返回的内容 -
<div className="demo0">
<div className="demo0-block" style={{
WebkitTransform: `translate3d(${x}px, 0, 0)`,
transform: `translate3d(${x}px, 0, 0)`,
}} />
</div>
在React中,<div>
如果没有孩子,则可以写为<div/>
。要插入子项,请将其转换为普通的HTML div
格式:<div>{children}</div>
在你的情况下,那将是:
<div className="demo0">
<div className="demo0-block" style={{
WebkitTransform: `translate3d(${x}px, 0, 0)`,
transform: `translate3d(${x}px, 0, 0)`,
}} >
{/* Children elements here */}
</div>
</div>
答案 1 :(得分:0)
<Motion style={{x: spring(this.state.open ? 400 : 0)}}>
{({x}) =>
// children is a callback which should accept the current value of
// `style`
<div className="demo0">
<div className="demo0-block" style={{
WebkitTransform: `translate3d(${x}px, 0, 0)`,
transform: `translate3d(${x}px, 0, 0)`,
}}>
<div><h1>Lots of stuff can go in here
here now!</h1></div>
</div>
}
</Motion>