Skip to Content
SVG Animations
book

SVG Animations

by Sarah Drasner
April 2017
Intermediate to advanced
246 pages
5h 3m
English
O'Reilly Media, Inc.
Content preview from SVG Animations

Chapter 12. DrawSVG and Draggable

Draggable

Dragging objects around your screen on the web is one of those things that seems like it would be pretty easy to implement—until you try to do it from scratch. There’s a lot to account for, with touch input, mouse events, viewports, scroll behavior, friction, and believable physics. There are more failure conditions than you would probably initially consider. Thankfully, GreenSock’s Draggable is a really powerful plug-in and works perfectly on SVG as well as HTML elements.

Draggable is device-enabled for touchscreens, uses requestAnimationFrame(), and is GPU-accelerated. Draggable works on its own but is more powerful when coupled with the ThrowPropsPlugin, which creates really beautiful physics-like motion.

One of the best things about Draggable is its simplicity. This is all it takes to make a box realistically draggable:

 Draggable.create(".box", {type:"x,y", edgeResistance:0.65,
  bounds:"#container", throwProps:true});

You may notice in the preceding code that we’ve defined some boundaries with bounds. bounds is pretty flexible: you can define containing units or pixel parameters. Something like "#container" (as in the preceding example) or section would work, but you could also say {top:10, left:10, width:800, height:600} in an object to restrict the movement.

You can also have it lock movement along the horizontal or vertical axis if you like by setting lockAxis:true, which will work in both directions.

There are lots of callbacks/event ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

SVG Text Layout

SVG Text Layout

Amelia Bellamy-Royds, Kurt Cagle
Mastering SVG

Mastering SVG

Rob Larsen
Creating Web Animations

Creating Web Animations

Kirupa Chinnathambi

Publisher Resources

ISBN: 9781491939697Errata Page