Очень загадочный вопрос. Ну могу предположить смутно что надо.
Просто заводишь инпут только с type="text" и с onkeypress='return event.charCode >= 48 && event.charCode <= 57'
Затем руками добавляешь кнопки в разметку, которые будут так же работать как в number
так? https://jsfiddle.net/dw0usw3f/
ось x то смещена была.
либо отдельную переменную заводить, либо вообще не трогать, как тут
z собсвенно ось получается
Если попап, передаешь на клик id или другой опознавательный атрибут картинки в див с попапом и грузишь его внутри.
Если не попап и без превьюшек, то на клик меняешь стиль, например, всего дива на position: fixed;и естественно позиционирование и разрешение. Затем бэкдроп полупрозрачный сзади c z-index меньше основного дива выводишь изdisplay:none; в block; , так же с кнопками по управлению внутри дива.