App.js

import React from 'react';
import './App.css';//引入组件
import SearchBox from "./components/SearchBox";
class App extends React.Component{render () {return (<div className="App"><SearchBox /></div>);}}export default App;

Searchbox.js

import React from "react";
//引入css文件
import './SearchBox.css'//创建一个类
class SearchBox extends React.Component {constructor(props) {super(props);  //调用父类构造函数this.state = {history: ['第一', '第二', '第三', '第四', '第五', '第六'],isShow: false,  //搜索历史的显示隐藏selectIndex: 0, //被选中的下标 改变颜色text: '', //input里的value值}//直接用state里的值 : this.state//改变state里的值 : this.setState({ })}render() {return (<div><input type="text"value={this.state.text}onFocus={() => {   /*获取焦点*/this.setState({isShow: true})}}onBlur={() => { /* 失去焦点*/this.setState({isShow: false})}}onKeyDown={(e) => {  /*按下键盘事件*/if (e.keyCode === 40) {  /*下键*/this.state.selectIndex++;//判断下标 和 数组的长度相比if (this.state.selectIndex >= this.state.history.length) {this.setState({selectIndex: 0});return;}// 设置属性 只要setState 就会重新 renderthis.setState({selectIndex: this.state.selectIndex})} else if (e.keyCode === 38) {   /*上键*/this.state.selectIndex--;if (this.state.selectIndex < 0) {this.setState({selectIndex: this.state.history.length - 1});return;}this.setState({selectIndex: this.state.selectIndex})}// 根据上下键切换,则给表单赋不同的值let temp = this.state.history[this.state.selectIndex];this.setState({text: temp})}}/>{/*获取焦点 显示  失去焦点 隐藏*/}<div className={this.state.isShow ? 'history_active' : 'history_hidden'}>{// react中的循环this.state.history.map((ele, index) => {//添加class 用className  选中变颜色return <div className={this.state.selectIndex === index ? 'history_text' : ''}>{ele}</div>})}</div></div>);}
}export default SearchBox;

SearchBox.css

.history_active{display: block;
}
.history_hidden{display: none;
}
.history_text{color: royalblue;
}

React 实现 百度搜索框(简易)相关推荐

  1. 用React实现百度搜索框(简易版)

    1. DOM结构如下 2. state里面需要存储的数据: 3. 函数处理 4. 细节处理:控制列表的可见性 如果说输入框没有值就不可见 在CSS中设置display

  2. 站长工具|百度搜索框提示功能

    百度向站长开放免费"百度搜索框"代码和"百度搜索框提示"代码.只需进行简单的设置, 即可将" 百度搜索框( 带提示功能)"功能快速加入到您的 ...

  3. php百度搜索框代码,基于jquery的仿百度搜索框效果代码_jquery

    先看看整个的效果图: 图一: 图二: 图三: 图四: 大概的效果图就这样,接下来直接看源码 页面: CSS: .autoSearchText{ border:solid 1px #CFCFCF; he ...

  4. 让Excel也像百度搜索框一样,录入时逐步提示

    像百度搜索框一样,录入时逐步提示 百度搜索框中录入字符,会弹出提示框简化输入,并提升效率.Excel中也可以实现.

  5. html搜索框下拉怎么做,一步一步教你实现仿百度搜索框下拉效果(上)

    最终效果(chrome 下): 搜索框下拉 demo 今天就来简单讲解下如何做这样一个类似百度搜索框的下拉效果. 1.html 以及 css 部分 首先你得要有个输入框,这里我用了  控件,其次当用户 ...

  6. 百度搜索框提示词下拉列表的制作方法

    <!DOCTYPE HTML> <html ng-app="myApp"> <head> <meta http-equiv="C ...

  7. 百度搜索框怎么用HTML做,百度搜索框的基本实现

    百度首页搜索框是这样的一个基本形式,我们搜索框里输入字符时就能显示出一些有关的联想词,如图2所示 图1.png 图2.png 那么今天我们来写一下这种效果,不算一模一样,大概相同吧,哈哈. 第一步:在 ...

  8. 前端笔记31——在自己的网页中嵌入百度搜索框

    前言 在前面我分享了我学习到的表单知识,我也明白了我们常见的百度搜索框也是通过表单去实现的.下面分享一下在自己的网页中嵌入百度搜索框. 在自己的网页中嵌入百度搜索框 <!DOCTYPE html ...

  9. 仿百度搜索框–jQuery版本

    仿百度搜索框–jQuery版本 时维九月,序属三秋.此吾工作三个月之日,亦是吾重拾博客之时.一路坎坷走来,经历良多,收获甚多. 正题 百度搜索框是企业开发中常用的一项功能,作为一个前端工作者,自然也是 ...

最新文章

  1. 现代C++函数式编程
  2. 美开发数据自毁技术适用云计算架构
  3. linux 命令rsss,[译] linux内存管理之RSS和VSZ的区别
  4. web前端性能分析--实践篇
  5. laravel 模板继承_Laravel框架模板之公共模板、继承、包含实现方法分析
  6. oracle 数据操作的相关参数
  7. vue-cli@2的原理解析
  8. 详解VirtualBox虚拟机网络环境解析和搭建-NAT、桥接、Host-Only、Internal、端口映射
  9. php5.5 getter setter,实现了一个PHP5的getter/setter基类的代码
  10. MySQL中distinct和group by性能比较
  11. Android混淆从入门到精通
  12. HTTP1.0、HTTP1.1和HTTP2.0
  13. 20135337——信息安全设计基础第十四周学习笔记
  14. 方正国际用CMMI的思想管理博客
  15. FPGA使用ISERDES2过采样
  16. neutron使用数据库
  17. Linux硬盘文件系统损坏,Linux常见的文件系统类故障该怎么解决-文件系统错误
  18. Win7 启动 0xc0000034错误 - 解决
  19. mac搜索不到wifi wtg_Mac连不上WiFi怎么办?Mac连不上无线网络解决办法
  20. anaconda安装支持mpi并行化的h5py

热门文章

  1. 关于kafka中的timestamp与offset的对应关系
  2. 在hadoop/hbase等代码中kinit
  3. Velocity浅析及与Jsp、Freemarker对比
  4. 【Lucene4.8教程之三】搜索
  5. 一文让你彻底理解 Java HashMap
  6. Spark Java API:foreach、foreachPartition、lookup
  7. [译]GC专家系列2:Java 垃圾回收的监控
  8. Android--OkHttp理解系列(一)
  9. XML文件中的CDATA的使用.
  10. Android中获取当前位置的使用步骤