use getBoundingClientRect to get canvas position