fixed mouse events with getBoundingClientRect instead of offset calculation