Added 'onSnap' callback and 'onSnapEvent' DOM Event