设计自动完成UI组件ð
#javascript #网络开发人员 #react #面试

在Web开发的不断发展的景观中,创建直观的用户界面至关重要。自动填充组件是已经变得不可或缺的一个接口元素。在此博客文章中,我们将探讨设计一个自动完成的UI组件的过程,该组件使用户能够轻松输入搜索词,在方便的弹出窗口中列出搜索列表,并授权他们选择结果。
让我们潜入! ð

Baby dives in pool

自动完成的魔力�

自动完成的UI组件通过使搜索更有效和用户友好,从而彻底改变了用户体验。在深入研究实施的坚果和螺栓之前,让我们建立构成有效自动完整的基本特征:

文本输入框ð:这个熟悉的文本输入字段是用户输入其搜索查询的网关。

搜索结果弹出窗口â€:动态弹出式或下拉案件一旦用户开始键入就会出现。它显示了建议结果的列表,提供了即时反馈。

搜索结果项目ð:弹出窗口中的每个项目都应提供信息,并清楚地表明了结果的匹配部分。视觉提示如不同的文本颜色或背景阴影有助于结果差异。

导航ð½:用户应该能够使用键盘箭头(上下)和鼠标单击以获得无缝体验。

选择ð:当用户选择搜索结果时,它应该填充文本输入字段,从而易于确认选择。这种互动应该感觉直观。

解雇:当用户单击外部时,弹出窗口应消失,按“ ESC”键,进行选择或清除输入字段。

实时过滤°:结果应作为用户类型实时更新,从而消除了对手动搜索按钮的需求。在向服务器提出新请求以减少不必要的请求之前,请稍有延迟。

代码揭示了ð»ð»ð»

Code Unveiled

演示代码here.

现在,让我们查看使用HTML,CSS和JavaScript的简化实现:

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Autocomplete Example</title>
 <link src='./styles.css' rel='stylesheet'/>
</head>
<body>
    <div id="autocomplete-container">
        <input type="text" id="search-input" placeholder="Search...">
        <div id="search-results"></div>
    </div>

    <script src='./script.js></script>
</body>
</html>

CSS

 /* Basic CSS styles for the autocomplete */
 #autocomplete - container {
     position: relative;
     width: 300 px;
 }
 #search - input {
     width: 100 % ;
     padding: 10 px;
 }
 #search - results {
         position: absolute;
         width: 100 % ;
         border: 1 px solid #ccc;
         max - height: 150 px;
         overflow - y: auto;
         display: none;
     }
     .result - item {
         padding: 5 px;
         cursor: pointer;
     }
     .result - item: hover {
         background - color: #f0f0f0;
     }       

JavaScript

 // Sample data (replace with your actual data source)
const data = [
    "Apple",
    "Banana",
    "Cherry",
    "Date",
    "Fig",
    "Grape",
    "Lemon",
    "Mango",
    "Orange",
    "Peach",
    "Pear",
    "Pineapple",
    "Strawberry",
    "Watermelon"
];

// Input element
const searchInput = document.getElementById("search-input");

// Results popup
const searchResults = document.getElementById("search-results");

// Function to filter and display results
function updateResults() {
    const query = searchInput.value.toLowerCase();
    const filteredData = data.filter(item => item.toLowerCase().includes(query));

    // Clear previous results
    searchResults.innerHTML = "";

    // Display new results
    filteredData.forEach(item => {
        // Create a div to hold each result
        const resultItem = document.createElement("div");
        resultItem.className = "result-item";
        resultItem.textContent = item;

        // Handle click on result item
        resultItem.addEventListener("click", () => {
            searchInput.value = item;
            searchResults.style.display = "none";
        });

        // Add each result div to the popup
        searchResults.appendChild(resultItem);
    });

    // Show/hide results popup
    searchResults.style.display = filteredData.length ? "block" : "none";
}

// Event listeners
searchInput.addEventListener("input", updateResults);
document.addEventListener("click", (event) => {
    if (event.target !== searchInput) {
        searchResults.style.display = "none";
    }
});

包装ð

从头开始实现自动完成的UI组件是一项有意义的努力,可增强Web应用程序的可用性。通过遵守这些设计原理并剖析代码,您可以制作有效且用户友好的自动完整组件。随意自定义并扩展此示例,以满足您项目的独特要求。 ð

那么,为什么要等?今天开始创建自动完成组件的旅程,并为您的用户提供令人愉悦的搜索体验! ð

与我联系我:

LinkedIn
GitHub
Twitter