Я пытаюсь создать поддельный ввод и подражать его поведению. вход будет элементом div и каждым символом в нем элементом span. здесь demoстиль поддельного курсора
вот проблема - когда я вставляю свой «курсор» после того, как elment его визуально вроде прилипает к следующему элементу. Если я удалю свойство width из «mock-cursor» - текст прыгает. Я хотел бы, чтобы «курсор» располагался в центре между двумя символами. но я не уверен, как это достичь.
код также доступен здесь
//html
<div id="inputEmulation">
<div id='mock-cursor'>|</div>
<span>1</span>
<span>2</span>
<span>3</span>
<span>4</span>
<span>5</span>
<span>6</span>
<span>7</span>
<span>8</span>
<span>9</span>
<span>0</span>
</div>
<button id = "moveCursor">Move cursor</button>
Теперь мне нужно эмулировать движение курсора между символами
здесь стиль и простой Javascript код для демонстрации. это то, что у меня до сих пор
//javascirpt
var cursor = "<div id='mock-cursor'>|</div>",
i = 0;
$("#moveCursor").click(function(){
if(i<10){
$("#mock-cursor").remove();
$(cursor).insertAfter($("#inputEmulation span")[i])
i++;
}
})
//css
#inputEmulation{
width:200px;
height:40px;
display: inline-block;
border: 2px solid rgba(0,176,235,0.8);
border-radius:6px;
color:#FFFFFF;
padding: 0 10px;
font-size: 22px;
background:rgba(10,150,197,0.8);
box-sizing: border-box;
text-align:left;
}
#inputEmulation span{
margin: 10px 0px;
}
#mock-cursor {
display: inline-block;
color: white;
-webkit-animation: blink 1s infinite;
animation: blink 1s infinite;
font-size: 1.2em;
font-weight: lighter;
width:0;
}
@-webkit-keyframes blink {
0%, 49.9%, 100% { opacity: 0; }
50%, 99.9% { opacity: 1; }
}
button {
display:block
width:40px;
height:40px;
cursor:pointer;
}
Первым вопрос спросить зачем вам это нужно? Почему бы просто не использовать стандартный «ввод» в стиле, который вам нужен, и позволить браузерам Chrome выполнять низкоуровневые функции, такие как позиция курсора? –
Согласен с @RoryMcCrossan. Просто ... почему ты это делаешь ...? –
Вы можете добавить к '# mock-cursor' что-то вроде' position: relative; right: 3px', то он будет более сосредоточен. –