写一个密码默认星号,但可以查看密码的输入框

<!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>

代码解释:

  1. HTML 结构:

    • #password-container div 用于包含密码输入框和显示/隐藏按钮,方便定位。
    • <input type="password" id="password"> 创建密码输入框,初始状态下显示星号。
    • <span id="show-password">👁️</span> 创建一个显示/隐藏按钮,使用眼睛emoji作为图标。
  2. CSS 样式:

    • 使用 position: relativeposition: absolute 将显示/隐藏按钮定位到输入框的右侧。
    • transform: translateY(-50%) 垂直居中按钮。
    • cursor: pointer 使按钮显示为指针形状。
    • user-select: none 防止用户选中图标文本。
  3. JavaScript 逻辑:

    • 获取密码输入框和显示/隐藏按钮的 DOM 元素。
    • 为显示/隐藏按钮添加点击事件监听器。
    • 在点击事件处理函数中:
      • 判断 passwordInput.type 的值:
        • 如果是 password,则将其更改为 text,并将按钮文本更改为 (黑色圆圈),显示密码。
        • 如果是 text,则将其更改为 password,并将按钮文本更改为 👁️ (眼睛),隐藏密码。

改进建议:

  • 可访问性: 为视力障碍用户添加aria-label属性,例如:<span id="show-password" aria-label="显示密码">👁️</span>
  • 图标库: 使用图标库 (例如Font Awesome, Material Icons) 来代替emoji,可以更好地控制图标样式和大小。
  • 错误处理: 可以添加一些错误处理,例如检查密码输入框是否存在。

这个改进版本更简洁,易于理解和维护,并且提高了代码的可访问性。 选择你喜欢的图标即可。 希望这个解释能帮到你!

posted @   王铁柱6  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示