写一个密码默认星号,但可以查看密码的输入框
<!DOCTYPE html>
<html>
<head>
<title>密码输入框</title>
<style>
#password-container {
position: relative;
}
#show-password {
position: absolute;
top: 50%;
right: 10px;
transform: translateY(-50%);
cursor: pointer;
user-select: none;
}
</style>
</head>
<body>
<div id="password-container">
<input type="password" id="password" placeholder="请输入密码">
<span id="show-password">👁️</span> </div>
<script>
const passwordInput = document.getElementById('password');
const showPassword = document.getElementById('show-password');
showPassword.addEventListener('click', () => {
if (passwordInput.type === 'password') {
passwordInput.type = 'text';
showPassword.textContent = '⚫'; // 切换到隐藏密码的图标
} else {
passwordInput.type = 'password';
showPassword.textContent = '👁️'; // 切换到显示密码的图标
}
});
</script>
</body>
</html>
代码解释:
-
HTML 结构:
#password-container
div 用于包含密码输入框和显示/隐藏按钮,方便定位。<input type="password" id="password">
创建密码输入框,初始状态下显示星号。<span id="show-password">👁️</span>
创建一个显示/隐藏按钮,使用眼睛emoji作为图标。
-
CSS 样式:
- 使用
position: relative
和position: absolute
将显示/隐藏按钮定位到输入框的右侧。 transform: translateY(-50%)
垂直居中按钮。cursor: pointer
使按钮显示为指针形状。user-select: none
防止用户选中图标文本。
- 使用
-
JavaScript 逻辑:
- 获取密码输入框和显示/隐藏按钮的 DOM 元素。
- 为显示/隐藏按钮添加点击事件监听器。
- 在点击事件处理函数中:
- 判断
passwordInput.type
的值:- 如果是
password
,则将其更改为text
,并将按钮文本更改为⚫
(黑色圆圈),显示密码。 - 如果是
text
,则将其更改为password
,并将按钮文本更改为👁️
(眼睛),隐藏密码。
- 如果是
- 判断
改进建议:
- 可访问性: 为视力障碍用户添加
aria-label
属性,例如:<span id="show-password" aria-label="显示密码">👁️</span>
。 - 图标库: 使用图标库 (例如Font Awesome, Material Icons) 来代替emoji,可以更好地控制图标样式和大小。
- 错误处理: 可以添加一些错误处理,例如检查密码输入框是否存在。
这个改进版本更简洁,易于理解和维护,并且提高了代码的可访问性。 选择你喜欢的图标即可。 希望这个解释能帮到你!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南