обычный span который расположен через absolute. и меняет свои left: и top:
границы по которым можно двигать этот спан просчитываются через js
даже codepen нагуглил. правда костыльный. но метод реализации по нему понять можно.
https://codepen.io/anon/pen/EVMwWR