这是来自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;发布于 2016-09-20 02:45:48
这就是从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/>。要插入子元素,请将其转换为普通的HTMLdiv格式:<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>发布于 2016-09-21 22:03:18
汤姆再次感谢你。您的答案是99%正确,但不需要大括号{}。你只需要关闭打开的div标签>。并正常关闭div。然后开始在里面添加元素,如下所示。(也许这就是您的实际意思,Brace只是为了演示。如果这是真的- 100%正确)
<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>https://stackoverflow.com/questions/39579918
复制相似问题