基于JavaScript实现百度搜索框效果


Posted in Javascript onJune 28, 2020

本文实例为大家分享了js实现百度搜索框展示效果的具体代码,供大家参考,具体内容如下

具体代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <style>
 *{
  margin:0;
  padding:0;
  font-size:14px;
 }
 input{
  display:block;
  outline:none;
 }
 a{
  display:block;
  text-decoration: none;
  color:#000;
 }
 a:hover,a:active,a:target{
  text-decoration: none;
  color:#000;
 }
 ul,li{

  list-style:none;
 }
 .box{
  position:absolute;
  top:20px;
  left:50%;
  margin-left:-250px;
  width:500px;
 }
 .box input{
  width:300px;
  height:35px;
  padding:0 10px;
  border:1px solid #008000;
 }
 .box ul{
  display:none;
  position:relative;
  top:-1px;
  border:1px solid #008000;
 }
 .box ul li,.box ul li a{
  height:35px;
  line-height:35px;
  
 }
 .box ul li a{
  padding:0 10px;
 }
 .box ul li a:hover{
  background:#ccc;
 }
 </style>
</head>
<body>
 <div class='box'>
 <input type="text" id='searchInp'>
 <ul id='searchList'>
  <li><a href="javascript:;">111111111111</a></li>
  <li><a href="javascript:;">2222222222</a></li>
  <li><a href="javascript:;">33333333333</a></li>
  <li><a href="javascript:;">444444444444</a></li>
  <li><a href="javascript:;">5555555555555</a></li>
 </ul>
 </div>


 <script>
 //显示
 /*
  1、文本框获取焦点,并且文本框中有内容的时候
  2、在文本框中操作内容(新输入/删除),如果内容没有清空,我们就显示,否则就隐藏

 */
 //隐藏
 /*
  1、点击页面中其余的位置(除了点击文本框和searchList里面的每一行)都隐藏;
  2、点击searchList中的列表隐藏,但是还要把列表中的内容放到文本框中
 */
 //不管是获取焦点onfocus,还是在里面编辑内容onkeyup,都是有内容显示,没内容隐藏
 var searchInp = document.getElementById('searchInp'),searchList = document.getElementById('searchList');
 searchInp.onkeyup = searchInp.onfocus = function(){
  var val = this.value.replace(/(^ +| +$)/g,'')//获取文本框中的内容,并且去除它的首尾空格
  searchList.style.display = val.length > 0 ? "block" : "none";
 }

 document.body.onclick = function(e){
  e = e || window.event;
  e.target = e.target || e.srcElement;

  //如果事件源是#searchList下的a标签,我们让searchList隐藏,并且把当前点击这个a中的内容放在文本框中
  if(e.target.tagName.toLowerCase()==="a" && e.target.parentNode.parentNode.id==="searchList"){
  searchList.style.display = "none";
  searchInp.value = e.target.innerHTML;
  return;
  }
  //如果事件源是文本框还需要单独的处理
  // if(e.target.id === "searchInp"){
  // return;
  // }
  searchList.style.display = "none";
 }

 //我们可以阻止一个容器中某些特殊性的元素,让其不在委托的范围内:我们只需要把这些不需要委托的阻止冒泡传播即可
 searchInp.onclick = function(e){
  e = e || window.event;
  e.stopPropagation ? e.stopPropagation() : e.cancelBubble = "true";
 }
 </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
P3P Header解决Cookie跨域的问题
Mar 12 Javascript
动态加载js和css(外部文件)
Apr 17 Javascript
JS页面延迟执行一些方法(整理)
Nov 11 Javascript
jQuery toggleClass应用实例(附效果图)
Apr 06 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
Jul 29 Javascript
JavaScript原生节点操作小结
Jan 17 Javascript
ES6新数据结构Set与WeakSet用法分析
Mar 31 Javascript
vue如何引入sass全局变量
Jun 28 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
Aug 17 Javascript
在layui下对元素进行事件绑定的实例
Sep 06 Javascript
如何实现echarts markline标签名显示自己想要的
Jul 20 Javascript
详解Js模块化的作用原理和方案
Apr 29 Javascript
深入理解基于vue-cli的vuex配置
Jul 24 #Javascript
JS按条件 serialize() 对应标签的使用方法
Jul 24 #Javascript
vue2.0的contextmenu右键弹出菜单的实例代码
Jul 24 #Javascript
关于vue-resource报错450的解决方案
Jul 24 #Javascript
JavaScript中的FileReader图片预览上传功能实现代码
Jul 24 #Javascript
react-router4 嵌套路由的使用方法
Jul 24 #Javascript
关于react-router的几种配置方式详解
Jul 24 #Javascript
You might like
世界第一个无线广播电台 KDKA
2021/03/01 无线电
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
2015/12/21 PHP
thinkPHP实现签到功能的方法
2017/03/15 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
浅谈PHP各环境下的伪静态配置
2019/03/13 PHP
php+iframe 实现上传文件功能示例
2020/03/04 PHP
ExtJS Ext.MessageBox.alert()弹出对话框详解
2010/04/02 Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
2013/03/25 Javascript
浅析JavaScript中的隐式类型转换
2013/12/05 Javascript
元素未显示设置width/height时IE中使用currentStyle获取为auto
2014/05/04 Javascript
JS获得浏览器版本和操作系统版本的例子
2014/05/13 Javascript
node.js中的path.normalize方法使用说明
2014/12/08 Javascript
JS动态修改表格cellPadding和cellSpacing的方法
2015/03/31 Javascript
JQuery创建DOM节点的方法
2015/06/11 Javascript
JavaScript AOP编程实例
2015/06/16 Javascript
AngularJS基础 ng-focus 指令简单示例
2016/08/01 Javascript
AngularJS入门教程之更多模板详解
2016/08/19 Javascript
bootstrap modal弹出框的垂直居中
2016/12/14 Javascript
js中的面向对象入门
2017/03/06 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
Kindeditor单独调用单图上传增加预览功能的实例
2017/07/31 Javascript
详解 vue.js用法和特性
2017/10/15 Javascript
vue路由的配置和页面切换详解
2020/09/09 Javascript
python 默认参数问题的陷阱
2016/02/29 Python
深入浅析python定时杀进程
2016/06/06 Python
Pandas中把dataframe转成array的方法
2018/04/13 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
Python网络爬虫之爬取微博热搜
2019/04/18 Python
让Python脚本暂停执行的几种方法(小结)
2019/07/11 Python
Python 根据数据模板创建shapefile的实现
2019/11/26 Python
用python实现一个简单的验证码
2020/12/09 Python
HTML5 LocalStorage 本地存储刷新值还在
2017/03/10 HTML / CSS
2014保险公司内勤工作总结
2014/12/16 职场文书
六一儿童节开幕词
2015/01/29 职场文书
乌镇导游词
2015/02/02 职场文书
情况说明书怎么写
2015/10/08 职场文书