javascript - reactjs 可拖动和可调整大小的组件

标签 javascript reactjs react-grid-layout

在过去的几个小时里,我一直在尝试寻找一种方法来使 React 组件可拖动和可调整大小。我找到了一种使用 react drag and drop 使其可拖动的方法,但我找不到一种简单的方法来调整它的大小:/ 有没有人有关于如何使组件可拖动和可调整大小的经验?

感谢任何帮助或指点!

最佳答案

使用react-grid-layout来解决这个问题。专门用于日程安排小部件,用户可以在其中缩放时间 block 并沿水平时间线拖放它们。

react-grid-layout 提供了一个网格,其中包含可拖动和可调整大小的小部件以及响应式布局、可选的自动打包以及其他功能。

var ReactGridLayout = require('react-grid-layout');

// React component render function:
render: function() {
  return (
    <ReactGridLayout className="layout" cols={12} rowHeight={30}>
      <div key={1} _grid={{x: 0, y: 0, w: 1, h: 2}}>1</div>
      <div key={2} _grid={{x: 1, y: 0, w: 1, h: 2}}>2</div>
      <div key={3} _grid={{x: 2, y: 0, w: 1, h: 2}}>3</div>
    </ReactGridLayout>
  )
}

子节点可拖动且可调整大小。每个子“_grid”属性中定义的布局也可以直接在父“layout”属性上定义:

// React component render function:
render: function() {
  // layout is an array of objects, see the demo
  var layout = getOrGenerateLayout();
  return (
    <ReactGridLayout className="layout" layout={layout} cols={12} rowHeight={30}>
      <div key={1}>1</div>
      <div key={2}>2</div>
      <div key={3}>3</div>
    </ReactGridLayout>
  )
}

回调函数可以作为 props 传递给组件。挂接到这些应该允许您定义任何自定义行为:

// Calls when drag starts.
onDragStart: React.PropTypes.func,
// Calls on each drag movement.
onDrag: React.PropTypes.func,
// Calls when drag is complete.
onDragStop: React.PropTypes.func,
// Calls when resize starts.
onResizeStart: React.PropTypes.func,
// Calls when resize movement happens.
onResize: React.PropTypes.func,
// Calls when resize is complete.
onResizeStop: React.PropTypes.func

来自文档的代码示例: https://github.com/STRML/react-grid-layout

演示在这里: https://strml.github.io/react-grid-layout/examples/0-showcase.html

关于javascript - reactjs 可拖动和可调整大小的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31640500/

相关文章:

javascript - 使用指令范围参数在指令父范围上调用函数

javascript - ReactJS:用于 css 转换的切换类

reactjs - 是否可以使用react-grid-layout获得初始断点?

reactjs - 如何使用 Material UI Card 填充 React Grid Layout 项目

reactjs - 如何让echarts与react-grid-layout一起调整大小?

javascript - 在窗口调整大小时保持居中并向左和向右溢出的 Div

javascript - 正则表达式不适用于至少一个欧洲字符

javascript - jquery 验证仅突出显示标签

javascript - React - 带参数的同一类中的事件

javascript - 显示每个列表项的属性的新状态