Как смоделировать мигающий курсор справа от поля значения поля ввода, даже если он размыт?
На сфокусированном поле появляется мигающий курсор, но я хочу, чтобы он показывался в обоих состояниях.
Как я могу это сделать?
Я думал об <span>
обертывании | символ, который мигает с помощью анимации, но не может быть html (<span>
) в качестве значения или части значения атрибута value.
Я знаю, что быстрое решение было бы сосредоточено или автофокусироваться на поле, но я не могу этого, так как на фокусе поля, происходят другие вещи.
Я думаю, что вы были на правильном пути с идеей о том, что обтекание диапазона "|" характер и анимацию. Если вы можете поместить это прямо после вашего элемента ввода, то вы можете использовать общий селектор для сиблинга, чтобы скрыть его, когда фокус ввода (в противном случае у вас есть два курсора), и абсолютно поместите его внутри родительского элемента, чтобы он появился поверх ввода элемент.
Таким образом, ваш HTML будет выглядеть так:
<div id="container">
<input id="input"> </input>
<span id="mock-cursor">|</span>
</div>
Скрытие курсора, когда фокус ввода будет таким, как в CSS:
input:focus ~ #mock-cursor {
display: none;
}
Затем вы сделаете абсолютное позиционирование и анимацию. Похоже, вы знакомы с процессом анимации, поэтому я не буду подробно останавливаться на этом здесь, но я ссылаюсь на демоверсию CodePen, которая делает это, в случае, если вам нужно также увидеть код для этого.
Вы можете использовать focus()
для выполнения этой задачи. Нет необходимости использовать анимированный символ (|).