Here I am


Blog Posts

Receiving mousemove events outside dragged iframe

Don't call preventDefault on the mousedown event

interact.js on Mozilla Hacks

I wrote an article about interact.js for the Mozilla Hacks blog

Creating the animated interact.js logo in SVG and SMIL

Two of the three animated Δs start at full opacity and fade out while scaling up from 1 to 25 in 10 seconds and from 0 to 15 in 7 seconds. The other fades in and then out while scaling down from 15 to 1 in 13 seconds.

Simple web demos with livedemo

takes the text out of highlighted <code> snippets and adds elements and CSS to the DOM and executes JS code.

A guide to SVG <use> elements

SVG <use> elements allow you to duplicate and re-use graphical SVG elements including <g>, <svg> and <symbol> elements as well as other <use> elements. With them, you can craft SVG documents with a DRY kind of approach.

How to control what is copy-pasted to/from the clipboard in Chrome, Firefox and Safari

control what the browser copies and pastes when a user uses keyboard shortcuts or the right-click context menu by changing focus to an element of your choice

Implementing elastic overscroll in JavaScript [Part 1]

h(x) = a⋅ln(x + a) - a⋅ln(a)

Hey web-devs, stop listening for EITHER touch or mouse events!

Seriously. It's annoying. Some devices have a touchscreen and mouse/trackpad.

Path snapping in interact.js

path snapping now lets you set fixed axis origin points or use functions to return the points that the pointer should snap to.