Drag Handle
You can restrict dragging to a specific part of node, by specifiying a class that will act as a dragHandle
.
<script lang="ts">
import { writable } from 'svelte/store';
import { SvelteFlow, Controls, Background, type Node, type Edge } from '@xyflow/svelte';
import DragHandleNode from './DragHandleNode.svelte';
import '@xyflow/svelte/dist/style.css';
const nodeTypes = {
dragHandleNode: DragHandleNode
};
const nodes = writable<Node[]>([
{
id: '2',
type: 'dragHandleNode',
// Specify the custom class acting as a drag handle
dragHandle: '.custom-drag-handle',
style: 'border: 1px solid #ddd; padding: 20px 40px; background: white;',
position: { x: 200, y: 200 },
data: {
label: 'Drag Handle'
}
}
]);
const edges = writable<Edge[]>([]);
</script>
<div style="height:100vh">
<SvelteFlow {nodes} {edges} {nodeTypes} fitView>
<Controls />
<Background />
</SvelteFlow>
</div>
⚠️
To surpress unknown prop warnings in the browser console, please refer to the guide.