Использование среагировать-сетки-макет, чтобы решить эту проблему. В частности, для виджета планирования, где пользователи могут масштабировать блоки времени и перетаскивать их по горизонтальной временной шкале.
Взаимосвязь с сеткой-сеткой обеспечивает сетку с перетаскиваемыми и изменяемыми по размеру виджетами плюс отзывчивый макет, факультативная автоматическая упаковка, среди других функций.
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» проп альтернативно может быть определен непосредственно на родительский «макет» пропеллер:
// 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>
)
}
функция обратного вызова может быть передана к компонентам как реквизит. Подключаем в них позволит вам определить любое пользовательское поведение:
// 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
Demo здесь: https://strml.github.io/react-grid-layout/examples/0-showcase.html
Это иллюстрирует, как сделать элементы изменяемыми по размеру, но вопрос задает вопрос о том, как сделать элемент как изменяемым по размеру, так и перетаскиваемым , – nnyby