<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: dragndrop</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/dragndrop.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2023-09-29T19:56:20+00:00</updated><author><name>Simon Willison</name></author><entry><title>Draggable objects</title><link href="https://simonwillison.net/2023/Sep/29/draggable-objects/#atom-tag" rel="alternate"/><published>2023-09-29T19:56:20+00:00</published><updated>2023-09-29T19:56:20+00:00</updated><id>https://simonwillison.net/2023/Sep/29/draggable-objects/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.redblobgames.com/making-of/draggable/"&gt;Draggable objects&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Amit Patel’s detailed write-up of a small but full-featured JavaScript function for creating draggable objects, with support for both mouse and touch devices “using browser features that are widely supported since 2020”.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://news.ycombinator.com/item?id=37703291"&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/draggables"&gt;draggables&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/dragndrop"&gt;dragndrop&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;&lt;/p&gt;



</summary><category term="draggables"/><category term="dragndrop"/><category term="javascript"/></entry><entry><title>@neodrag/vanilla</title><link href="https://simonwillison.net/2023/May/11/neodrag/#atom-tag" rel="alternate"/><published>2023-05-11T02:48:20+00:00</published><updated>2023-05-11T02:48:20+00:00</updated><id>https://simonwillison.net/2023/May/11/neodrag/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/PuruVJ/neodrag/tree/main/packages/vanilla#readme"&gt;@neodrag/vanilla&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
“A lightweight vanillaJS library to make your elements draggable”—I stumbled across this today while checking out a Windows 11 simulator built in Svelte. It’s a neat little library, and “download-esm @neodrag/vanilla” worked to grab me an ECMAScript module that I could import and use.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://github.com/yashash-pugalia/win11-svelte"&gt;win11-svelte&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/dragndrop"&gt;dragndrop&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;&lt;/p&gt;



</summary><category term="dragndrop"/><category term="javascript"/></entry><entry><title>jQuery UI: Trying to manipulate the position of a draggable mid-drag doesn't seem to work</title><link href="https://simonwillison.net/2010/Apr/11/jquery/#atom-tag" rel="alternate"/><published>2010-04-11T21:59:41+00:00</published><updated>2010-04-11T21:59:41+00:00</updated><id>https://simonwillison.net/2010/Apr/11/jquery/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://forum.jquery.com/topic/trying-to-manipulate-the-position-of-a-draggable-mid-drag-doesn-t-seem-to-work"&gt;jQuery UI: Trying to manipulate the position of a draggable mid-drag doesn&amp;#x27;t seem to work&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
This has bitten me on two separate projects now—it’s the only problem I’ve had with jQuery UI’s draggables, which have otherwise been fantastic.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/draggables"&gt;draggables&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/dragndrop"&gt;dragndrop&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jquery"&gt;jquery&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jqueryui"&gt;jqueryui&lt;/a&gt;&lt;/p&gt;



</summary><category term="draggables"/><category term="dragndrop"/><category term="javascript"/><category term="jquery"/><category term="jqueryui"/></entry><entry><title>Firefox 3.5 for developers</title><link href="https://simonwillison.net/2009/Jun/30/firefox/#atom-tag" rel="alternate"/><published>2009-06-30T18:08:34+00:00</published><updated>2009-06-30T18:08:34+00:00</updated><id>https://simonwillison.net/2009/Jun/30/firefox/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://developer.mozilla.org/en/Firefox_3.5_for_developers"&gt;Firefox 3.5 for developers&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
It’s out today, and the feature list is huge. Highlights include HTML 5 drag ’n’ drop, audio and video elements, offline resources, downloadable fonts, text-shadow, CSS transforms with -moz-transform, localStorage, geolocation, web workers, trackpad swipe events, native JSON, cross-site HTTP requests, text API for canvas, defer attribute for the script element and TraceMonkey for better JS performance!


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/audio"&gt;audio&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/browsers"&gt;browsers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/canvas"&gt;canvas&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/crossdomain"&gt;crossdomain&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/csstransforms"&gt;csstransforms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/dragndrop"&gt;dragndrop&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/firefox"&gt;firefox&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/firefox35"&gt;firefox35&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/fonts"&gt;fonts&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/geolocation"&gt;geolocation&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html5"&gt;html5&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/json"&gt;json&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/localstorage"&gt;localstorage&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mozilla"&gt;mozilla&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/offlineresources"&gt;offlineresources&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/performance"&gt;performance&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/textshadow"&gt;textshadow&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/tracemonkey"&gt;tracemonkey&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/video"&gt;video&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/webworkers"&gt;webworkers&lt;/a&gt;&lt;/p&gt;



</summary><category term="audio"/><category term="browsers"/><category term="canvas"/><category term="crossdomain"/><category term="csstransforms"/><category term="dragndrop"/><category term="firefox"/><category term="firefox35"/><category term="fonts"/><category term="geolocation"/><category term="html5"/><category term="javascript"/><category term="json"/><category term="localstorage"/><category term="mozilla"/><category term="offlineresources"/><category term="performance"/><category term="textshadow"/><category term="tracemonkey"/><category term="video"/><category term="webworkers"/></entry><entry><title>Django snippets: Orderable inlines using drag and drop with jQuery UI</title><link href="https://simonwillison.net/2008/Sep/13/django/#atom-tag" rel="alternate"/><published>2008-09-13T12:19:02+00:00</published><updated>2008-09-13T12:19:02+00:00</updated><id>https://simonwillison.net/2008/Sep/13/django/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.djangosnippets.org/snippets/1053/"&gt;Django snippets: Orderable inlines using drag and drop with jQuery UI&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Code example from my PyCon tutorial on customising the Django admin interface.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django-admin"&gt;django-admin&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/dragndrop"&gt;dragndrop&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jquery"&gt;jquery&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/pyconuk"&gt;pyconuk&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/pyconuk2008"&gt;pyconuk2008&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/snippets"&gt;snippets&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/sortable"&gt;sortable&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/speaking"&gt;speaking&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/my-talks"&gt;my-talks&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/tutorials"&gt;tutorials&lt;/a&gt;&lt;/p&gt;



</summary><category term="django"/><category term="django-admin"/><category term="dragndrop"/><category term="jquery"/><category term="pyconuk"/><category term="pyconuk2008"/><category term="python"/><category term="snippets"/><category term="sortable"/><category term="speaking"/><category term="my-talks"/><category term="tutorials"/></entry></feed>