use doubles, add target, rename canvas -> element
use getBoundingClientRect