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

今天工作遇到的一个问题是在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. 分享SQL Server 2012/2014内存数据库,AlwaysOn,参考教材与网上总结

    Sql Server 2012 高可用性的几种方案的比较,AlwaysOn优势何在 对Sql Server 2012 高可用性与灾难恢复的几种方案的比较,复制,集群,镜像优劣何在,新生技术Always ...

  2. 关于aggregation 语法和表达式大全(最新3.4版)

    用mongodb四年多了,从1.8版用到目前的3.4版,功能越来越强大,而且它的每一次升级带给我的都是惊喜,最近发现他的aggregation(管道)技术越来越丰富了,基本上将它提供的所有功能都集成了 ...

  3. Fiddler-2 Fiddler抓包原理

    1 fiddler抓包是在 客户端和服务器之间建立一个代理服务器,监听本机发出的请求和服务器返回的响应结果. 截一张官网的图: 2 启动fiddler之前,[dinghanhua]先来看一下代理服务器 ...

  4. 【python】3.x,string与bytes的区别(文本,二进制数据)

    Python 3对文本和二进制数据作了更为清晰的区分.文本总是Unicode,由str类型表示, 二进制数据则由bytes类型表示. 不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也 ...

  5. KTV项目 SQL数据库的应用 结合C#应用窗体

    五道口北大青鸟校区 KTV项目 指导老师:袁玉明 歌曲播放原理 SQL数据库关系图 C#解决方案类图 第一步:创建数据库连接方法和打开方法和关闭方法! public class DBHelper { ...

  6. DOM扩展之 专有扩展

    11.4.3 contains() 方法 用来确定某个节点是不是另一个节点的后代. 注:a.contains(a) 也是返回true.说明contains方法搜索是从自身开始的. DOM Level ...

  7. Android实战技巧:ViewStub的应用

    在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局.那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在 ...

  8. Jsonp理论实例代码详解

    什么是Json?JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - ...

  9. 【Python】re正则表达式

    简单举几个常用的re正则表达式的例子: m = re.match("abc", "abcdef") print(m.group()) # 输出:abc m = ...

  10. 关于JAVA的数据转换总结

    数据转换在编程里面是十分常用的,将平常可能用到的数据转换类型总结起来会在以后码代码的过程中有很大帮助. 在数据转换之前,需要明白的是基础数据类型的自动转换和强制转换.接下来就先从数据类型的容量讲起. ...