当前位置: 首页 > news >正文

HTML集成优雅的实时输入清除功能

引言

你好呀,我是小邹。

点击访问 我的个人博客

在现代网页设计中,用户体验是至关重要的。一个流畅、直观且反应迅速的界面能够显著提升用户满意度。本文将介绍如何在网页表单中集成实时输入清除功能,即在输入框中显示一个“x”图标,允许用户一键清除输入框内的文本。我们将使用HTML、CSS和JavaScript来实现这一功能,同时保持界面的简洁和美观。

效果图

在这里插入图片描述

HTML结构

我们的示例代码基于一个标准的输入框,我们将在输入框右侧嵌入一个清除图标。这里是HTML代码的基本结构:

<div class="field m-mobile-wide m-margin-bottom-small" style="padding-top: 10px"><div class="ui left icon input"><i class="qq icon"></i><input type="text" id="QQ" name="qq" placeholder="输入QQ号自动获取昵称头像" required="required"><span class="clear-input" style="display: none;"><i class="fa fa-times-circle"></i></span></div>
</div>

这里我们使用了<span>元素来包裹清除图标,初始时设置display: none;使其不可见。

CSS样式

为了使清除图标位于输入框的右侧,我们需要使用CSS来定位和美化这个图标。以下是CSS代码:

.clear-input {position: absolute;right: 0.5rem;top: 50%;transform: translateY(-50%);cursor: pointer;display: none; /* 默认隐藏 */
}

这段代码将清除图标定位在输入框的右上角,并通过transform属性垂直居中。

JavaScript逻辑

为了让清除图标在输入框有文本时显示,并在点击时清除文本,我们需要使用JavaScript来添加事件监听器。下面是JavaScript代码:

document.addEventListener('DOMContentLoaded', function () {const inputs = document.querySelectorAll('.ui.left.icon.input input');const clearSpans = document.querySelectorAll('.ui.left.icon.input .clear-input');inputs.forEach((input, index) => {// 检查输入框是否非空,如果是,则显示清除图标if (input.value) {clearSpans[index].style.display = 'block';}// 当输入框内容改变时,显示或隐藏清除图标input.addEventListener('input', function () {if (this.value) {clearSpans[index].style.display = 'block';} else {clearSpans[index].style.display = 'none';}});// 当输入框获得焦点时,如果已有内容,显示清除图标input.addEventListener('focus', function () {if (this.value) {clearSpans[index].style.display = 'block';}});// 当输入框失去焦点且为空时,隐藏清除图标input.addEventListener('blur', function () {if (!this.value) {clearSpans[index].style.display = 'none';}});// 当点击清除图标时,清空输入框并隐藏图标clearSpans[index].addEventListener('click', function (event) {event.stopPropagation();input.value = '';clearSpans[index].style.display = 'none';});});
});

这段代码监听了inputfocusblur事件,根据输入框的状态显示或隐藏清除图标。当清除图标被点击时,会清空输入框并再次隐藏图标。

总结

通过上述步骤,我们可以轻松地在网页表单中实现一个实用且美观的实时输入清除功能。这不仅提高了用户交互的便利性,也增强了整体的用户体验。希望这篇文章能帮助你优化自己的网站或应用程序的用户界面设计。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++ 容器:pair tuple
  • MySQL性能优化篇之SQL语句优化
  • Windows桌面上透明的记事本怎么设置
  • HarmonyOS(43) @BuilderParam标签使用指南
  • 捷配生产笔记-细间距芯片的表面处理工艺:OSP与沉金工艺的重要性
  • android13 文件管理器无法安装apk 奔溃问题
  • android13 cat /proc/cupinfo没有Serial问题
  • 七款好用的公司电脑监控软件推荐|2024年电脑监控软件干货整理!
  • APP下载二维码的主要用途,制作也简单!
  • 广电影视NAS共享非编存储磁盘阵列
  • ONLYOFFICE 8.1版本版本桌面编辑器测评
  • unordered_map和set
  • VPS拨号服务器:独享的高效与安全
  • MMII 的多模态医学图像交互框架:更直观地理解人体解剖结构和疾病
  • 电脑拼图软件有哪些?盘点7种简单好用电脑拼图软件
  • 【React系列】如何构建React应用程序
  • echarts花样作死的坑
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • ES6之路之模块详解
  • HTTP中的ETag在移动客户端的应用
  • JavaScript新鲜事·第5期
  • js递归,无限分级树形折叠菜单
  • Making An Indicator With Pure CSS
  • mysql 5.6 原生Online DDL解析
  • MySQL-事务管理(基础)
  • nfs客户端进程变D,延伸linux的lock
  • nodejs:开发并发布一个nodejs包
  • Redis 懒删除(lazy free)简史
  • spring boot 整合mybatis 无法输出sql的问题
  • SpringBoot 实战 (三) | 配置文件详解
  • SQLServer之创建数据库快照
  • WebSocket使用
  • ------- 计算机网络基础
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 用jquery写贪吃蛇
  • 与 ConTeXt MkIV 官方文档的接驳
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 阿里云ACE认证学习知识点梳理
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • #前后端分离# 头条发布系统
  • #微信小程序(布局、渲染层基础知识)
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • $(function(){})与(function($){....})(jQuery)的区别
  • $.ajax中的eval及dataType
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (分布式缓存)Redis哨兵
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)大型网站架构演变和知识体系
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版