VUE模仿百度搜索框,按上下方向键及回车键实现搜索选中效果

[事件相机1]2024CVPR:Event Stream-based Visual Object Tracking: A High-Resolution Benchmark Dataset 作者:Xiao Wang, Shiao Wang, Chuanming Tang, Lin Zhu, Bo Jiang, Yonghong Tian, Jin Tang代码:https://github.com/Event-AHU/EventVOT_Benchmark。 阅读详情
逻辑介绍:
  1、表单获取焦点时,显示搜索建议框
  2、输入内容时,请求后台接口,并将返回的数据展示在搜索建议框内
  3、表单获取焦点情况下,按键盘上下箭头可实现搜索列表项的切换,按回车可以选择当前激活的选项并获取当前选项的数据,然后你可以用数据做其他事了
<template>
  <div class="container">
    <div class="d-searchBox">
      <input
        @keydown.down="selectResultItem"
        @keydown.enter="goSearch(currentIndex)"
        @blur="searchResultBoxShow = false"
        @focus="searchResultBoxShow = true"
        @input="inputHandle"
        type="text"
        placeholder="search"
        v-model="searchValue"
        ref="search"
      >
      <ul
        v-show="searchResultBoxShow || isMouseOnSerchBox"
        @mouseenter="isMouseOnSerchBox = true"
        @mouseleave="isMouseOnSerchBox = false"
        class="searchResult"
      >
        <li
          v-if="!loading"
          :class="[currentIndex === i ? 'active' : '']"
          v-for="(item, i) of person"
          @click="goSearch(i)"
          :key="i"
        >
          <span>{{ item.name }}</span>
          <span>{{ item.honor }}</span>
        </li>
        <li
          style="text-align: center;line-height: 60px;"
          v-if="loading"
        >数据加载中...</li>
        <li
          v-if="!this.person.length && !loading"
          style="text-align: center;line-height: 60px;"
        >no Data</li>
      </ul>
    </div>
  </div>
</template>

<script>

export default {
  data () {
    return {
      searchResultBoxShow: false,
      isMouseOnSerchBox: false,
      searchValue: '',
      currentIndex: -1,
      person: [],
      loading: false,
      personData: [
        {
          'id': '001',
          'age': '45',
          'name': '晁盖',
          'honor': '托塔天王'
        },
        {
          'id': '002',
          'age': '44',
          'name': '宋江',
          'honor': '及时雨'
        },
        {
          'id': '003',
          'age': '44',
          'name': '吴用',
          'honor': '智多星'
        },
        {
          'id': '004',
          'age': '44',
          'name': '卢俊义',
          'honor': '玉麒麟'
        }
      ]
    }
  },
  methods: {
    goSearch (i) {
      const item = this.person[i]
      console.log('got the' + item + 'and yon can do something')
      this.$refs.search.blur()
      this.currentIndex = i
      this.searchResultBoxShow = this.isMouseOnSerchBox = false
      this.person = []
      this.searchValue = ''
    },
    selectResultItem () {
      if (this.currentIndex === this.person.length - 1) {
        this.currentIndex = 0
      } else {
        this.currentIndex++
      }
    },
    inputHandle () { // 此处应该做节流
      this.searchResultBoxShow = true
      this.loading = true
      setTimeout(() => {
        this.person = this.personData
        this.loading = false
      }, 2000)
    }
  }
}
</script>

<style scoped lang="scss">
  @import "../../assets/css/variate";
  .container {
    width: 100%;
    .d-searchBox {
      margin-left: 300px;
      margin-top: 20px;
      display: inline-block;
      position: relative;
      input {
        height: 26px;
        border-radius: 4px;
        font-size: 14px;
      }
      .searchResult {
        position: absolute;
        top: 36px;
        left: 0;
        background-color: #fff;
        box-shadow: 0 0 6px 0 $themecolor;
        width: 100%;
        li {
          border-bottom: 1px solid #ddd;
          padding: 4px 10px;
          font-size: 14px;
          color: $themecolor;
          &.active {
            background-color: rgba($themecolor, 0.1);
          }
        }
      }
    }
  }
</style>
效果图如下:

eNSP网络构建—建立小型局域网 企业私有网络构建运维 实战案例——使用模拟器构建局域网络 案例分析 1.架构分析 (1)需求分析 本实验的目的在于建立小型局域网。由于公司由不同部门组成,并分布在不同地点,因此需要划分不同网络实现互联互通。设计以下网络:两个部门各使用一台交换机连接,然后连接到总交换机,再通过路由器与外网以及其他部门网络相连。为了控制网络上的广播风暴,增加网络的安全性,在交换机上需要设置VLAN,在路由器与交换机之... 阅读详情

相关推荐

openwrt编译及第一个安装包教程

Date: 2017.03.14 Made:SuperDeverloper Email: na1206@live.com Target: For mt7688 based board说明:本人在学习过程中走了不少弯路,希望本文档能为后来者提供便利。欢迎复制和使用本文档。本文档记录了搭建openwrt编译环境以及快速创建ipk包(openwrt上的安装程序)。本文档在实际应用中做过几次修改,以帮

SuperDevloper的博客 1万+

【vue+element ui】select实时搜索模糊查询,匹配文字高亮显示,下拉选中定位菜单高亮并显示对应内容(效果同input输入框实时搜索)

参考element ui select的远程搜索 对应属性的解释 <el-select class="inputInfo" v-model="searchcursom" filterable clearable remote placeholder="搜索内容" :remote-method="querySearch" @change=.

花椒和蕊的博客 9334

PYNQ-Z2 开发板从镜像烧录到 Jupyter 交互全流程指南

本文详细介绍了PYNQ-Z2开发板从镜像烧录到Jupyter交互的全流程指南,包括硬件解析、镜像烧录技巧、设备启动与网络配置、Jupyter Notebook深度使用以及实战案例分享。通过具体步骤和实用技巧,帮助开发者快速上手PYNQ-Z2开发板,实现高效的FPGA开发和智能家居控制应用。

weixin_28736355的博客 440

vue + element 表格键盘上下键选择

需求:弹出窗口表格需要通过键盘上下键选择数据,回车提交数据。

黑夜无风的博客 1269

粒子滤波在基于误差状态量的INS/GNSS组合导航中的使用技巧-On Particle Filter based Error-State INS/GNSS Intergrated Navigation

本文面向以15维惯导(INS)误差为状态量,3维位置误差为量测量的INS/GNSS组合导航系统,​在西工大严恭敏老师的开源工具箱中PF相关库函数基础上实现基于粒子滤波(PF)的惯导误差状态量的递推估计,设计了粒子重置环节并强调了其在本特定场景下的重要性。

I33D33I的博客 1742

Ubuntu 22.04 LTS升级OpenSSH 9.6p1完整指南(附OpenSSL 3.2.0适配方案)

本文详细介绍了在Ubuntu 22.04 LTS系统中升级OpenSSH至9.6p1版本的全流程,包括OpenSSL 3.2.0的适配方案。从准备工作、依赖库安装、源代码编译到系统集成与配置,提供了完整的操作指南和常见问题解决方法,帮助用户安全高效地完成升级,提升服务器安全性和性能。

i8j9k0l1的博客 319

vue+element 实现表格,键盘上下键选择某一行,并选中

1.直接上代码 <template> <div> <el-form label-width='0.5rem' style='display:flex' class='fromclass aline'> <el-form-item label="公司" required> <el-input style='width:1.6rem' v-model="purchase" autocomplete="off" @keyup.native.

weixin_48604432的博客 4827

uniapp - 详细解决 H5 网页报错 Uncaught Error: Async component timed out after ? ms.(移动端h5页面白屏或加载缓慢失败,超时报错处理)

uni-app,vue3,网页,h5,移动端,手机H5页面,浏览器,报错,uniapp报错,Asynccomponenttimedoutafter,如何解决这个问题,vue3Asynccomponenttimedoutafter,异步组件超时了怎么办,async,详细解决方案,AsyncComponents异步组件,导致页面打不开了,白屏什么也不显示,网页载入非常慢卡顿,vue3网站报错,超时,nuxt3,详细解决方案,浏览器控制台报错,爆红并且页面卡住了,依旧报错,找不到异步组件的报错

🏆 前端领域优质创作者 3777

如何在创建vue项目时使用上下翻页按键优雅地进行选项选择

在 Windows 系统中,当我们在命令行工具 git bash 中使用 vue create app 这个命令进行新项目创建时,会出现以下选项提示: 让我们选择具体的选项,但实际上并不能进行选择,这个问题及解决方案在 Vue CLI 的官方文档都有详细说明。即: 你必须通过 winpty vue.cmd create hello-world 启动这个命令。不过,如果你仍想使用 vue create hello-world,则可以通过在 ~/.bashrc 文件中添加以下行来为命令添加别名。 alias

走在前端 2266

在最新版eclipse中配置使用AI AIcoder _AIcoder配置GPUSTACK使用_配置OLLAMA本地AI模型利用_集合---AI场景应用工作笔记

本文介绍了三款实用的编程辅助工具:一款便捷的反编译插件,可直接在插件市场安装使用;GitHub Copilot提供每月2000次代码补全和50条聊天记录的免费额度,支持智能代码提示功能;aicoder支持配置本地模型运行。这些工具都能有效提升开发效率,其中GitHub Copilot的智能补全功能尤为突出。

添柴程序猿的专栏 1245

【OpenClaw从入门到精通】第34篇:医疗AI的“Agent OS”时代:基于WiseClaw构建医院专属智能体平台(2026实测版)

2026年医疗AI迈入实战落地新阶段,全球首个医疗OpenClaw平台WiseClaw正式发布,香港中文大学(深圳)医院完成业内首个私有化部署。本文基于真实医疗场景需求与公开技术资料,系统拆解医疗智能体平台的建设逻辑:从医疗Agent OS的五大核心特性切入,详解门诊病历质控、用药审查、医院运行管理三大临床场景的智能体搭建流程,提供完整的私有化部署代码、安全配置方案与实操演示。文章兼顾新手入门与进阶需求,严格遵循医疗合规要求,强调“只读不写+人工复核”原则,所有方案均经过虚拟实测验证。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 788

【vue+element UI】实现带全选、反选、联级、搜索的下拉多选框

vue+element UI实现带全选、反选、联级、搜索的下拉多选框; vue-treeselect插件实现带全选、反选、联级、搜索的下拉多选框

XujiRe的博客 3595

使用Simulink对固定翼无人机的自动起飞与降落进行仿真

本文介绍了基于Simulink的固定翼无人机自动起飞与降落控制系统设计方法。系统包含飞行器动力学模型、控制系统、环境模拟等模块,通过简化动力学方程描述无人机运动特性。详细说明了从创建模型、设置动力学方程、设计PID控制器(包括自动起飞和降落控制策略)到添加环境模拟的完整仿真流程。重点阐述了升降舵和发动机推力的控制律设计,以及性能评估要点。本方法可有效验证控制系统设计,优化飞行稳定性和安全性参数,为无人机自主控制提供仿真支持。

amy_mhd的博客 223

基于vue+element制作一款可多选可搜索的el-select选择器封装(可直接使用)

主要封装的功能有: 1. 下拉列表 2. 模糊搜索 3. 首次点击则会出现所有选项 4. 加载提示

Whit3ZzT的博客 3731

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

element实现input搜索提示以及多选

接到一个需求,做一个筛选功能,要求门店多选,并且有搜索提示 最后的效果图如下 多选的功能还是比较简单的,element有一个tag标签,直接把选中的值push到tag数组就可以了,给后台返回,只需要返回选中的tag标签的数据就好 至于搜索提示,以前没有做过,所以做下记录 在官网,给了一个demo,在demo中,有这么一个钩子 mounted() { this.restaurants = this.loadAll(); } 回显的数据是直接写到loadAll中的,但是,我们的数据是请求以后才能拿到

深圳最菜前端 4502

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

vue+element ui实现输入框手动输入以及下拉框选择

【代码】vue+element ui实现输入框手动输入以及下拉框选择。

m0_63006013的博客 5289

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

element-ui input搜索功能/动态输入搜索

element ui的input输入框组件有带输入建议的搜索框,但是实际项目中,不想要输入建议,直想要那个搜索功能,摸索了一下,最后把待输入建议的搜索框修改成了输入框+搜索。 如图实现这样一个动态输入搜索功能。 html部分: <el-input class="inline-input" v-model="state1" placeholder="请输入单据号" > </el-input> <el-checkbox-group v-model="

qq_32913629的博客 3918

vue+element模拟百度搜索(输入建议)

1、页面部分 <el-form-item label="供应商号" prop="lifnrid"> <el-autocomplete class="el-input" style="width: 545px" v-model="form.lifnrid" :fetch-suggestions="getMbLFA" placeholder="请输

weixin_39293537的博客 1130

vue 上下键li_解决页面需要上下左右选中元素的问题,富操作__Vue.js

前言纯粹是因为无聊吧,然后就是突发奇想。我以前开发过web端的收银系统。之前更早的时候也是做过零售软件方面的实施,通常在门店的时候收银员为了更为快速的去收银,是很少会去用鼠标的。都是键盘解决。但是web操作系统页面有一个问题。就是你的通过tab等方式其实不是很方便。然后我们还有商品列表也需要通过键盘方式选中返回。如果通过鼠标,在一些门店每天都是几万的销售额中,是非常累人,且效率低下的。这次开发的这...

weixin_35801556的博客 1243

vue列表左右箭头滑动_Vue实现点击箭头上下移动效果

{{item.name}}//i↓↑Vue.config.productionTip = false//不去提示new Vue({el: "#app",data() {return {list:[{id:111,name:"aaa"},{id:222,name:"bbb"},{id:333,name:"ccc"},{id:444,name:"ddd"}]}},methods:{down(i){le...

weixin_28719225的博客 3095

如何处理vue3.0 创建时, 无法使用键盘上下键切换选项的问题

最新安装环境时,遇到的坑。 git创建项目时,不能使用上下键切换选项的界面如下: 解决步骤 1、处于上图状态时,使用ctrl+c退出当前操作(不是,忽略~~~~); 2、输入命令: alias vue='winpty vue.cmd' 3、输入命令: vue craete test 得到如图,即可进行选择: 旨在分享~~~~~ ...

weixin_43978501的博客 1167

vuejs搜索关键字高亮显示并且实现切换显示下一个选项多种方法

参考资料: https://segmentfault.com/q/1010000038543596?_ea=87295903 第一种方法: 手写: <template> <div> <el-button v-for="item in list" :key="item.id" @click="clickBtn(item.value)">{{ item.value }}&

南北极之间 1525

vue实现前端模糊搜索,模仿百度搜索的效果

前端本地的模糊搜索原理其实很简单,我写的本地搜索只需要理解 indexOf,filter.这几个就可以了,还要加上监听每次input的触发方法,vue用@input。 1.大概效果就是照着百度的搜索写的 .2.首先点击输入框的时候,不输入的情况下先显示推荐内容 .3.如果输入了内容则显示匹配了的搜索详情区域,如果没有匹配的内容则不显示搜索详情区域

林同学啊的博客 6885

Vue入门 ---- 仿百度搜索

简述 学习vue的第二节,由于2.0版本并不向下兼容,视频中的不少内不能实现。下面列出一些主要知识点 // v-on 可简写为@ // 事件冒泡是指当点击div内部的button触发show1()时,必然会冒泡到div上执行show2(),这才层级div中很常见 // 阻止冒泡,原生js法,设置事件对象的cancelBubble属性为true // vue方法@click.stop /...

一串代码的博客 1897

Vue2 + Element UI 实现分页搜索功能

利用 Vue + Element 表格组件实现 带搜索功能的表格数据局分页显示。

qq_40875570的博客 3021

vue elementUI 数据联想 类似百度的模糊查询

一般下拉框可以满足需求,数据量大的时候下拉框太长不好看,这时候就需要模糊查询 如下图: 后端返回的数据格式不太对,所以需要自己手动整理,这里整理的数据必须有一个value项,可能是组件的限制 组件 <el-form-item label="职工代码" prop="zgdm"> <el-autocomplete class="inline-input" ..

qq_42897782的博客 2189
上一篇: "export 'default' (imported as '...') was not found in ''..."错误处理
下一篇: 基于vue+iview实现省市区三级联动
哈哈hyc
博客等级 码龄8年 131粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值