📅  最后修改于: 2023-12-03 14:57:42.305000             🧑  作者: Mango
语义 UI 是一种设计理念,旨在让用户界面更加易于理解和便于交互。语义 UI 遵循清晰的设计规则和语义化的代码,以增强用户与应用程序之间的沟通和协作。
UI 段变化是指用户界面元素之间的更改,这些元素可以是文字、图像、图标或其他交互元素。段变化可以在用户点击按钮、输入文本或进行其他交互时自动触发。它可以改变一部分界面元素,也可以改变整个界面的外观和行为。
以下是几个语义 UI 段变化的示例:
当用户输入错误格式的信息时,可以使用相关的提示信息来指引他们如何修改输入。下面是一个例子:
<label for="email">Email:</label>
<input type="email" name="email" required>
<div class="error-message" aria-hidden="true">请输入正确的电子邮件地址</div>
当用户输入错误的格式时,可以将错误信息的可见性从隐藏更改为可见。
var input = document.querySelector('input[name="email"]');
var errorMessage = document.querySelector('.error-message');
input.addEventListener('invalid', function(event) {
event.preventDefault();
errorMessage.setAttribute('aria-hidden', false);
});
input.addEventListener('input', function(event) {
if (input.checkValidity()) {
errorMessage.setAttribute('aria-hidden', true);
}
});
当用户单击下拉菜单时,可以使用样式更改下拉菜单项的外观和行为。下面是一个例子:
<button aria-haspopup="true" aria-expanded="false">菜单</button>
<ul role="menu" aria-hidden="true">
<li role="menuitem"><a href="#">选项 1</a></li>
<li role="menuitem"><a href="#">选项 2</a></li>
<li role="menuitem"><a href="#">选项 3</a></li>
</ul>
当用户单击按钮时,可以使用 JavaScript 将下拉菜单的可见性从隐藏更改为可见。
var button = document.querySelector('button[aria-haspopup="true"]');
var menu = document.querySelector('ul[role="menu"]');
button.addEventListener('click', function(event) {
var expanded = button.getAttribute('aria-expanded') === 'true' || false;
button.setAttribute('aria-expanded', !expanded);
menu.setAttribute('aria-hidden', expanded);
});
当用户单击树节点时,可以使用样式更改节点的外观和行为。下面是一个例子:
<ul role="tree" aria-multiselectable="true">
<li role="treeitem" aria-expanded="false">
<div tabindex="0">节点 1</div>
<ul role="group" aria-hidden="true">
<li role="treeitem"><div tabindex="-1">子节点 1</div></li>
<li role="treeitem"><div tabindex="-1">子节点 2</div></li>
</ul>
</li>
<li role="treeitem"><div tabindex="0">节点 2</div></li>
<li role="treeitem"><div tabindex="0">节点 3</div></li>
</ul>
当用户单击节点时,可以使用 JavaScript 更改其展开状态,并将子节点的可见性从隐藏更改为可见。
var nodes = document.querySelectorAll('[role="treeitem"]');
nodes.forEach(function(node) {
var button = node.querySelector('div');
var group = node.querySelector('[role="group"]');
button.addEventListener('click', function(event) {
var expanded = node.getAttribute('aria-expanded') === 'true' || false;
node.setAttribute('aria-expanded', !expanded);
group.setAttribute('aria-hidden', expanded);
});
});
语义 UI 和 UI 段变化是提高用户体验和应用程序可访问性的一种有效方式。使用合适的 HTML 元素和属性,配合 JavaScript,可以实现动态的界面效果,使用户交互更加自然和流畅。希望本文可以为读者提供一些有用的信息,让他们开发更加语义化的应用程序。