vue实现百度搜索功能


Posted in Javascript onDecember 28, 2020

本文实例为大家分享了vue实现百度搜索功能的具体代码,供大家参考,具体内容如下

最终效果:

vue实现百度搜索功能

Baidusearch.vue所有代码:

<template>
 <div>
 <div class="container" id="app">
 <div class="page-header">
  <h2 class=" text-center text-primary">百度搜索案例</h2>
 </div>
 <form action="">
  <div class=" form-group">
  <input v-model="wd" @keyup="keyup($event)" @keydown="keydown($event)" type="text" class="form-control" />
  <ul class="list-group">
  <li class="list-group-item list-group-item-text" v-for="(item,index) in arr" :class="{'list-group-item-info':index==listIndex}" @click="click($event)">{{item}}</li>
  </ul>
  </div>
 </form>
 </div>
 </div>
</template>
 
<script>
 export default {
 name: "Baidusearch",
 data(){
  return{
  wd:'',//搜索的关键词
  arr:[],//用于储存关键词的搜索词条
  listIndex:-1//设置初始索引,数组从0开始,因此初始成-1
  }
 },
 methods:{
 //这个函数我们在input标签输入关键词的时候不断的给百度服务器发送请求获取搜索词条,并且不断的复制给data中的数组arr
 keyup(event){
  //如果我按的是上下键,那么就不发送请求了
  console.log(event);
  if(event.keyCode==38||event.keyCode==40||event.keyCode==13) return ;
  var url="https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su"
  this.$http.jsonp(url,{
  params:{
  wd:this.wd
  },
  jsonp:'cb'
  }).then(res=>{
  console.log(res);
  this.arr=res.data.s;//把百度服务器返回的数据传给arr数组
  })
 },
 //监听鼠标的点击事件
 //如果鼠标点击某一行的文字,则点击事件中的event.explicitOriginalTarget.data代表关键词
 //如果点击某一行的空白处,则点击事件中的event.explicitOriginalTarget.innerText代表关键词
 //大家可以通过console.log(event)来查看关键词所在的位置
 click(event){
  console.log(event);
  if(event.explicitOriginalTarget.data!=undefined){
  this.wd=event.explicitOriginalTarget.data;
  window.open("https://www.baidu.com/s?wd="+this.wd);
  }else if(event.explicitOriginalTarget.innerText!=undefined){
  this.wd=event.explicitOriginalTarget.innerText;
  window.open("https://www.baidu.com/s?wd="+this.wd);
  }
 },
 //监听键盘的事件
 //如果按down,则增加当前listIndex+1,因此arr[this.listIndex]就能代表当前的词条
 //我们通过对listIndex的修改来得到当前词条在arr中的索引,然后就可以得到词条的具体信息,然后发送请求了
 keydown(event){
  console.log(event);
  //下键:40 上键:38
  if(event.keyCode==38){
  //按的上键
  this.listIndex--;
  if(this.listIndex<0){
  this.listIndex=this.arr.length-1;
  }
  this.wd=this.arr[this.listIndex];
  }
  else if(event.keyCode==40){
  //说明你按的是下键
  this.listIndex++;
  if(this.listIndex>this.arr.length-1){
  this.listIndex=0;
  }
  this.wd=this.arr[this.listIndex];
  }else if(event.keyCode==13){
  //如果你按的是enter,那么就跳转到百度搜索结果
  window.open("https://www.baidu.com/s?wd="+this.wd);
  }
 
 }
 }
 }
</script>
 
<style scoped>
 
</style>

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

Javascript 相关文章推荐
利用JQuery为搜索栏增加tag提示
Jun 22 Javascript
javascript级联下拉列表实例代码(自写)
May 10 Javascript
javascript学习笔记(七)Ajax和Http状态码
Oct 08 Javascript
c#+jquery实现获取radio和checkbox的值
Sep 12 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
Jul 27 Javascript
JavaScript中实现Map的示例代码
Sep 09 Javascript
微信小程序 location API接口详解及实例代码
Oct 12 Javascript
文件上传的几个示例分享【推荐】
Dec 16 Javascript
简单谈谈JS中的正则表达式
Sep 11 Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
Apr 17 Javascript
Vuex的actions属性的具体使用
Apr 14 Javascript
微信小程序动态添加和删除组件的现实
Feb 28 Javascript
vue+element搭建后台小总结 el-dropdown下拉功能
Apr 10 #Javascript
Vue 中使用富文本编译器wangEditor3的方法
Sep 26 #Javascript
react实现同页面三级跳转路由布局
Sep 26 #Javascript
vue轮播组件实现$children和$parent 附带好用的gif录制工具
Sep 26 #Javascript
小程序调用微信支付的方法
Sep 26 #Javascript
细说webpack6 Babel的使用详解
Sep 26 #Javascript
微信小程序实现拖拽功能
Sep 26 #Javascript
You might like
2020最新CPU的性能排名
2020/04/02 数码科技
木翼下载系统中说明的PHP安全配置方法
2007/06/16 PHP
精通php的十大要点(上)
2009/02/04 PHP
PHP+jQuery实现即点即改功能示例
2019/02/21 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
window.onresize 多次触发的解决方法
2013/11/08 Javascript
node.js中的socket.io入门实例
2014/04/26 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
2014/05/04 Javascript
jquery实现公告翻滚效果
2015/02/27 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
2015/10/15 Javascript
jQuery版AJAX简易封装代码
2016/09/14 Javascript
浅谈AngularJs指令之scope属性详解
2016/10/24 Javascript
Javascript中常用类型的格式化方法小结
2016/12/26 Javascript
JavaScript和jQuery制作光棒效果
2017/02/24 Javascript
react组件从搭建脚手架到在npm发布的步骤实现
2019/01/09 Javascript
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
jquery实现动态改变css样式的方法分析
2019/05/27 jQuery
微信小程序数据统计和错误统计的实现方法
2019/06/26 Javascript
JS实现简单日历特效
2020/01/03 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
python使用range函数计算一组数和的方法
2015/05/07 Python
在Django的视图(View)外使用Session的方法
2015/07/23 Python
详解Python的Lambda函数与排序
2016/10/25 Python
用Pygal绘制直方图代码示例
2017/12/07 Python
python使用Apriori算法进行关联性解析
2017/12/21 Python
pandas 透视表中文字段排序方法
2018/11/16 Python
python3.5 cv2 获取视频特定帧生成jpg图片
2019/08/28 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
2019/09/26 Python
Python Matplotlib绘图基础知识代码解析
2020/08/31 Python
移动端适配 使px自动转换rem
2019/08/26 HTML / CSS
俄罗斯连接商品和买家的在线平台:goods.ru
2020/11/30 全球购物
护士试用期自我鉴定
2014/02/08 职场文书
团购业务员岗位职责
2014/03/15 职场文书
2014年体育教师工作总结
2014/12/03 职场文书
幼儿园大班毕业评语
2014/12/31 职场文书