How can I specify position of dropped element ?
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}); } })
Read full answer below β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 (4)
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...
@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.getWr...
Thanks for reporting this, @RutujaBadbe. Great question about How can I specify position of dropped element ?. The recommended approach with GrapesJS is to use the event-driven API. Start here: Check the GrapesJS documentation for your specific module Look for the on() event listener method Most op...
Related Questions and Answers
Continue research with similar issue discussions.
Issue #3303
Category order not displaying properly
Hi! I want to display the categories in block manager in certain sequence. I looked into docs and previous issues and found about order att...
Issue #3400
Ckeditor5 + GrapesJS now is possible!
We are DevFuture, we developed plugin for integrate GrapesJS + ckeditor5. Video example: https://www.youtube.com/watch?v=xn4gSMIrx-A We kno...
Issue #3133
Getting started example in React application
Please could anyone guide me on how to run the basic example given in the GrapesJS website using React.. PLEASE HELP
Issue #3544
Trait Button Command not working on 0.17.4
Version:0.17.4 The trait with type button does not call command on 0.17.4 which is used to work before 0.17.3.Expected Behaviour Clicking b...
Paid Plugins That Match This Issue
Curated by issue keywords and label relevance to help you ship faster.
Loading paid plugin recommendations...
Check the open-source GrapesJS plugins on GitHub or run a quick search in our free catalog.
Browse free plugins βPremium plugins ship with support, regular updates, and production-ready features β save days of integration work.
Browse premium plugins βRelated tutorials
In-depth guides on the same topic.
Tutorial
How to Build an AI-Powered Page Builder with GrapesJS in 2026
What we learned building GJSDocs β from simple AI text generation to structured, context-aware visual editing
Tutorial
How Much Does It Cost to Build a SaaS Page Builder in 2026?
How much does it cost to build a SaaS page builder in 2026? Explore realistic development costs, timelines, features, and how using GrapesJS can reduce
Tutorial
PageKit: the GrapesJS application you'd have to build anyway
A source-available Next.js app around the open-source GrapesJS core β publishing, custom domains, leads, checkout and a plugin loader.
Browse Plugin Categories
Jump directly to plugin category pages on the marketplace.