How can I specify position of dropped element ?
Question
I want to specify the position of dragging element. for example, if I have a header block which no matter where you drag, it should be placed at the top of document. how should I do that?
Answers (3)
after dropping the header block into the canvas, I need it to go at top of any other component/block. currently, I am doing this. but it is not working.
editor.on('canvas:drop',(DataTransfer, model)=> {
if (model.is('header')) {
var index = 0;
editor.getComponents().add(model, {at: index});
}
})You can use draggable property to define (via CSS query strings) where the component could be placed but you can't specify the position.
You can try to create a custom component as a container for components like the header and init always your templates with those containers. Then your header can use draggable property in this way: draggable: '[data-gjs-type="header-container"]',
@artf thanks for the reply. I don't know if it is correct way but I did something and it worked for me. I am quite new at this and still learning from docs.
I did this-
editor.on('canvas:drop',( model)=> {
if (model.is('header')) { //created custom component type header
const wrapper = editor.getWrapper();
const el = wrapper.find('header')[1]; //checking if header already exist
if(el==undefined){
var wrapperChildren = editor.DomComponents.getComponents();
var index = 1;
wrapperChildren.add({ tagName:'div', attributes:{id: 'header'}, components: [model] }, {at: index});
}
else{
el.remove();
alert('header already exist');
}
}
})
Thanks again!Related Questions and Answers
Continue research with similar issue discussions.
Issue #2374
[BUG] Component style is not updated after the drag event in Dragmode('absolute')
In the new dragmode the component's style is not updated after dragging the component. Expected behaviour:Drag element by clicking on the c...
Issue #2061
[QUESTION] How to place a component at the end of the canvas.
How can I put my footer at the end of the canvas? I want the editor to not allow placing a block/widget below the footer. example
Issue #2595
[Question] Having trouble dragging external html with draggable="true"
I want to make an external html element able to be dragged into GrapesJS, like how you can drag in a block and it will add something. I hav...
Issue #2310
[QUESTION] How can I specify position for dragging elements ?
Hi iam doing a project with this library and i want to specify position for dragging components in it for example i have a div with id="dra...
Paid Plugins That Match This Issue
Curated by issue keywords and label relevance to help you ship faster.
Loading paid plugin recommendations...
Browse Plugin Categories
Jump directly to plugin category pages on the marketplace.