У меня есть список элементов с разными отступами:
- List item 1
- List item 2
- List item 3
- List item 2
Я включаю contentEditable
, когда пользователь щелкает элемент списка. Теперь, когда пользователь нажимает клавишу со стрелкой up
, я хочу переместить курсор курсора / слова, скажем, с List item 3
на List item 2
, сохраняя положение курсора по оси x.
Чтобы показать это графически,
intial caret pos:
- List item 2
- Li | st item 3
final caret pos after user presses up arrow. x offset remains same despite the difference in indent levels:
- List ite | m 2
- List item 3
Цель состоит в том, чтобы имитировать поведение многострочной текстовой области, в которой при перемещении между строками с помощью клавиш со стрелками сохраняется смещение курсора. Вы также можете увидеть это поведение при перемещении между элементами списка в Задачах Google.
После ссылка номер из related SO вопросы мне удалось пройти половину пути к решению проблемы, прежде чем я сдался.
Кто-нибудь знает об элегантном решении?