能者 发表于 2023-9-7 14:00:16

使用CSS实现文本输入框的自动填充效果

要实现文本输入框的自动填充效果,可以使用CSS中的`:hover`和`:focus`选择器以及JavaScript来实现。以下是一种可能的方法:

HTML部分:
<input type="text" id="input-box" />
<ul id="autocomplete-list"></ul>


CSS部分:
#autocomplete-list {
display: none;
list-style-type: none;
padding: 0;
margin: 0;
}

#autocomplete-list li {
padding: 5px;
cursor: pointer;
}

#autocomplete-list li:hover {
background-color: #f1f1f1;
}


JavaScript部分:
var inputBox = document.getElementById('input-box');
var autocompleteList = document.getElementById('autocomplete-list');

inputBox.addEventListener('input', function() {
var inputValue = inputBox.value.toLowerCase();

// 清空自动完成列表
autocompleteList.innerHTML = '';

// 如果输入框不为空,则显示自动完成列表
if (inputValue !== '') {
    autocompleteList.style.display = 'block';

    // 在此处根据需求从服务器或其他数据源获取自动完成的选项
    // 然后将选项添加到自动完成列表中
    // 这里只是假设有一个固定的选项列表
    var options = ['apple', 'banana', 'cherry', 'date', 'grape'];

    options.forEach(function(option) {
      if (option.startsWith(inputValue)) {
      var li = document.createElement('li');
      li.textContent = option;
      autocompleteList.appendChild(li);
      }
    });
} else {
    // 输入框为空时隐藏自动完成列表
    autocompleteList.style.display = 'none';
}
});

autocompleteList.addEventListener('click', function(event) {
// 将所选的自动完成选项填充到输入框中
inputBox.value = event.target.textContent;
autocompleteList.style.display = 'none';
});


这段代码的作用是:监听输入框的`input`事件,在用户输入时根据输入值生成相应的自动完成选项,并显示在下拉列表中。当用户点击某个选项时,将该选项的文本内容填充到输入框中。

请注意:这只是一个简单的示例,实际情况中你可能需要根据需求进行适当的修改和扩展。

页: [1]
查看完整版本: 使用CSS实现文本输入框的自动填充效果