snappedItemId $watch now calculates the shortest distance to the newId to maintain endless effect when programmatically changing the snapped item