1-如果用户按下某个键,则我的跨度会在右侧贴图,如果他删除键,那么该跨度会在左侧进行贴图...问题是用户仍然可以按Delete键,代码不知道如何处理

2-我也希望根据所按的字母偏移量是完美的……(例如,“ a”的间距与“ i”的间距不同)。

一个主意 ?谢谢 !

My codepen



$('.field__input').keydown(function(e) {
  if ($('.field__input').val().length > 0) {
    if (e.which != 8) { //= delete key
      $('.search__results').css('display', 'block').css('left', '+=20');
    } else {
      $('.search__results').css('left', '-=20');
    }
  } else {
    $('.search__results').css('display', 'none');
  }
});

.field--search {
  margin: 0 auto;
  padding: 10px 0;
  position: relative;
  width: 500px;
  .field__input {
    width: 100%;
  }
  .search__results {
    color: red;
    display: none;
    position: absolute;
    left: 0px;
    top: 10px;
  }
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="search" placeholder="Search..." class="field__input">
<span class="search__results">26</span>
<button class="search__delete"></button>

最佳答案

在您的第一个if语句中。 else参数应将左侧位置重新设置为原始位置。
忘记问题1,然后以不同的方式处理。


一种。创建一个空的跨度(显示:inline-block并将不透明度设置为0)

b。将其放在搜索结果之前。

每次按键时,用输入值更新新范围。这会将search__results范围推到单词大小的右侧。请记住不要在新跨度上设置宽度。这样,它会随着您的话而增长。

关于javascript - 用jQuery移动元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42254296/

10-09 20:26