Slow absolute drag on Chrome
@ngoc199 I'm addressing most of the issue about absolute mode here. I think the resize issue could be easily added here but the large embedded SVG image (by default, without an external asset storage, images are inlined) it's seems more like a browser limit
Read full answer below ↓Question
GrapesJS version
- I confirm to use the latest version of GrapesJS
What browser are you using?
Chrome 111
Reproducible demo link
https://jsfiddle.net/9zf4kd6e/ - this is the demo of Designer Mode
Describe the bug
How to reproduce the bug?
- Add an image component with
dragModeabsolute - Upload a large enough SVG image. You can use this image
- Drag the image around
- Drag the text component around
What is the expected behavior?
- The SVG image is not resized on drag
- The SVG image is moved fast to the right position
- The components are moved fast when there is a large SVG image
What is the current behavior?
- The SVG image is automatically resized on drag following the cursor position. After manually resizing the image, it can be dragged without being resized.
- The SVG image is moved slowly.
- The other components are moved slowly when there is a large SVG image.
Code of Conduct
- I agree to follow this project's Code of Conduct
Answers (2)
@ngoc199 I'm addressing most of the issue about absolute mode here. I think the resize issue could be easily added here but the large embedded SVG image (by default, without an external asset storage, images are inlined) it's seems more like a browser limit
Thanks for reporting this, @ngoc199.
Great question about slow absolute drag on Chrome. The recommended approach with Components 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 operations can be achieved by listening to editor and component events
Common patterns:
// Listen for changes
editor.on('change', () => console.log('something changed'));
// Component lifecycle
editor.on('component:mount', (c) => console.log('component ready', c));
editor.on('component:update', (c) => console.log('component updated', c));
If you're still stuck:
- Share a minimal CodeSandbox reproduction
- Include what you've already tried
- Mention your GrapesJS version
- The community is here to help!
Related Questions and Answers
Continue research with similar issue discussions.
Issue #4323
Performance issue while dragging component to canvas when you have 2k component on canvas
GrapesJS version[X] I confirm to use the latest version of GrapesJSWhat browser are you using? Google Chrome Version 101.0.4951.41 (Officia...
Issue #4466
Change in traits does not update html
GrapesJS version [x] I confirm to use the latest version of GrapesJS What browser are you using? Chrome Reproducible demo link https://jsfi...
Issue #3770
[Feature]: Improve and fix absolute dragMode
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Chrome v93 Reproducible demo link https://...
Issue #6409
Cannot drag to move components on mobile
GrapesJS version [x] I confirm to use the latest version of GrapesJS What browser are you using? Chrome v133 Reproducible demo link https:/...
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
Find the Right GrapesJS Plugin in Seconds: Smarter Discovery Is Live
We're shipping a set of discovery upgrades. New label filters, a proper compatibility switch for GrapesJS vs Studio, one-click and a smarter sort bar.
Tutorial
GrapesJS vs Webflow vs Tilda: What to Choose for Your Business in 2026
Choosing the right website platform in 2026 is no longer just about building a site
Tutorial
GJS Market 2.0 - Donations, Tracking, Labels and Better Product Discovery
We’ve rolled out a new set of GrapesJS marketplace updates across GJS Market, focused on improving how creators distribute products
Browse Plugin Categories
Jump directly to plugin category pages on the marketplace.