刚吃了一份宫保鸡丁刀削面,幸福感满满,写篇博客消耗一下热量。

今天工作遇到的一个问题是在input输入框中加入图标,当输入内容后,图标和提示语一起隐藏,类似于placeholder的功能。如淘宝页面,效果如下:

刚开始我以为是使用了placeholder,想了半天也不知道怎么把图标引入placeholder里面去,索兴打开淘宝页面,按下键盘上F12,跟随我一起来探索淘宝前端工程师不为人知的秘密吧,吼吼。

当然,我们不需要做的那么复杂,只要实现最基础的功能即可。我发现placeholder只是个假象,大神们用的label标签显示提示语,交互效果应该是用js实现的,步骤如下:

1. HTML代码:

<div class="box">
<label for="q" id="q_label">请输入关键字</label>
<input id="q" type="text">
<i class="am-icon-search search" id="q_i"></i>
</div>

其实结构非常简单,最外层放一个div盒子,里面放三个元素:一个label,一个input,一个i标签。使用for属性将label与input绑定,label用来显示字符串,i标签引入图标,input干好本职工作就行了——提供输入框。我这里是用的amazeUI框架的图标,所以用i标签引入,如果你直接使用图片,用img当然也没有问题。

好了,结构搭好了,下面就是css大显身手的时候了。

2. CSS代码 :

/**
*放置input的div盒子
*1.此处应我的项目需要,加了些特别的设置,如字体、背景色等,按需添加;
*2.内层input不加边框,看起来效果会自然一点,所以外层div设置了边框和圆角
*/
.box{
background-color: #ffffff;
border: 1px solid #eeeeee;
border-radius: 6px;
font-size: 14px;
text-align: center;
} /**
*label标签样式 放在.box下,不至于影响其他的label
*采取绝对定位,位置根据需求确定
*/
.box label{
z-index:;
position: absolute;
left: 50%;
margin-left: -8%;
color: #B2B2B2;
top: 4.8rem;
font-weight: normal;
} /**
*input标签样式
*宽度适应外层div
*隐藏边框
*这里有个小技巧,height与line-height值相等,可保证文字垂直居中;但我发现文字比图标略偏下,进行了微调;
*/
.box input{
text-indent: 10px;
height: 1.8rem;
line-height: 1.9rem;
width: 100%;
border: none;
outline: none;
} /**
*图标样式
*绝对定位,自定义颜色
*/
.box i{
position: absolute;
top: 4.8rem;
left: 50%;
margin-left: -15%;
color: #B2B2B2;
}

做好这些,效果就已经能粗来了,看图说话

至此,功能实现。既然已经写到这里了,顺便把js语句一并呈上吧。

3. JS代码:

/**
* Created by lixj on 2015/8/14.
* js判断input输入框中是否有值,以此来判断是否隐藏默认提示信息
* 使用keyup事件
*/
$(function() {
$('#q').on('keyup',function() {
var len = document.getElementById('q').value;
if(len == ''){
$('#q_label').show();
$('#q_i').show();
}else{
$('#q_label').hide();
$('#q_i').hide();
}
});
})

欧啦!周末愉快!!下班回家!!!

input中加入搜索图标的更多相关文章

  1. bootstrap中如何使input中的小图标获得点击事件

    bootstrap中,放入input中的小图标是不能点击的. 在表单中经常遇见密码旁边的眼睛图标点击后,可使密码可见. 要使小图标获得点击事件,可在小图标上覆盖一个跟小图标一样大的透明层,然后给透明层 ...

  2. html中如何修改选中 用input做的搜索框 的边框颜色

    html中如何修改选中 用input做的搜索框 的边框颜色 如图,当我鼠标选中输入框时,内边框会变成蓝色 我的问题是: 1.如何把蓝色去掉? 2.如何改成别的颜色? 首先感谢 UI设计师提出的需求,解 ...

  3. SAP CRM 在Web UI中创建搜索帮助

    多数情况下,在Web UI为一个特定的字段提供搜索帮助需要在事务SE11中创建搜索帮助. (注:也可以通过在SE24中创建一个类并实现实现IF_BSP_WD_CUSTOM_F4_CALLBACK接口来 ...

  4. 详细解读Android中的搜索框—— SearchView

    以前总是自己写的 今天看看别人做的 本篇讲的是如何用searchView实现搜索框,其实原理和之前的没啥差别,也算是个复习吧. 一.Manifest.xml 这里我用一个activity进行信息的输入 ...

  5. JS 捕获 input 中 键盘按键

    JS 捕获 input 中 键盘按键 的相应处理事件是很简单的,google搜索一下很容易找到处理方式,请看如下一种简单的处理方式: HTML代码: <div> <input typ ...

  6. 在 Angular 中实现搜索关键字高亮

    在 Angular 中,我们不应该试图直接修改 DOM 的内容,当需要更新 DOM 内容的时候,应该修改的其实是我们的数据模型,也就是 $scope 中的数据,Angular 会帮助我们将修改之后的数 ...

  7. iOS开发中使用文字图标iconfont

    在iOS的开发中,各种图标的使用是不可避免的,如果把全部图标做成图片放在项目中,那么随着项目的逐渐庞大起来,图片所占的地方就会越来越大,安装包也就随之变大了,如果图标需要根据不同的场景改变使用不同的颜 ...

  8. 小程序中使用阿里图标库iconfont

    小程序中使用阿里图标库iconfont 项目中常常需要使用到字体图标,微信小程序中使用字体图标与在平常的web前端中类似但是又有区别.下面以使用阿里图标为例子讲解如何在微信小程序中使用字体图标. 第一 ...

  9. ABAP 中的搜索帮助

    ABAP 中的搜索帮助 https://blog.csdn.net/u011576750/article/details/50999078 一.简介:在abap中,用到的搜索帮助个人遇到的情况如下,进 ...

随机推荐

  1. __attribute__((packed))作用

    1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法.这个功能是跟操作系统没关系,跟编译器有关,g ...

  2. dedecms qq咨询平均分配

    qq后台页: qq_admin.php <style type="text/css"> <!-- * {margin:0; padding:0;} .wrap { ...

  3. Android 6.0 新特性

    首先谈一谈Android 6.0的一些新特性 锁屏下语音搜索 指纹识别 更完整的应用权限管理 Doze电量管理 Now onTap App link 在开发过程中与我们关系最密切的就是"更完 ...

  4. iOS常用开发资源整理

    在行--专家付费咨询 杂项 App Release Checklist—iOS App发布清单. Hey Focus—帮助你专注于一个任务. Objective Cloud—Objective C A ...

  5. C++Primer 一

    1.vertor和数组的区别: 数组的长度固定.而且程序是无法知道一个给定数组的长度,数组没有获取器容量大小的size操作,也不提供puch_back操作在其中自动添加元素 2.数组定义中的类型可以示 ...

  6. 华为手机调试显示log日志

    华为手机默认状态手机log为关闭状态,所以看不到详细错误信息. 手机拨号*#*#2846579#*#*,进入projectmenu--后台设置--LOG设置--LOG开关--打开 勾选AP日志   C ...

  7. Spring中的JDBCTemplate

    src\dayday\JDBCTestTest package dayday;import com.sun.org.apache.xalan.internal.xsltc.compiler.Templ ...

  8. 用docker toolBox 搭建 nginx + flask + redis 环境

    本篇博客,主要是了解一下docker-compose的使用,docker-compose是官方给出的同时部署多个容器的解决方案:当你需要多个容器同时运行作为你的解决方案时:比如构建一个网站,需要php ...

  9. Android动画之Tween动画实战

    Android动画分为Tween动画和Frame动画,上一节通过一个实例介绍了Frame动画,本节将介绍Tween动画.Tween可以把对象进行缩小.放大.旋转和渐变等操作.     Tween动画有 ...

  10. BASH 命令以及使用方法小结【转】

    1,export VAR=... 这个命令在Shell下直接运行可以使之后运行的脚本也知道这个VAR.但是如果 这个命令在脚本中运行,那么不影响脚本以外的参数.举个例子,如果在一个脚本运行之前没有 V ...