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 相关文章推荐
用jscript实现新建和保存一个word文档
Jun 15 Javascript
javascript setTimeout和setInterval 的区别
Dec 08 Javascript
aspx中利用js实现确认删除代码
Jul 22 Javascript
jQuery prev ~ siblings选择器使用介绍
Aug 09 Javascript
jquery JSON的解析方式示例介绍
Jul 27 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
Mar 02 Javascript
JavaScript列表框listbox全选和反选的实现方法
Mar 18 Javascript
jQuery团购倒计时特效实现方法
May 07 Javascript
Bootstrap进度条组件知识详解
May 01 Javascript
使用Angular.js实现简单的购物车功能
Nov 21 Javascript
vue.js实现表格合并示例代码
Nov 30 Javascript
深入浅析Node.js单线程模型
Jul 10 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
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
PHP中header用法小结
2016/05/23 PHP
php使用Swoole实现毫秒级定时任务的方法
2020/09/04 PHP
浅析JQuery UI Dialog的样式设置问题
2013/12/18 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
一个可以增加和删除行的table并可编辑表格中内容
2014/06/16 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
2015/11/04 Javascript
node.js微信公众平台开发教程
2016/03/04 Javascript
jquery弹出框插件jquery.ui.dialog用法分析
2016/08/20 Javascript
简单的Vue异步组件实例Demo
2017/12/27 Javascript
微信小程序switch开关选择器使用详解
2018/01/31 Javascript
微信小程序按钮点击跳转页面详解
2019/05/06 Javascript
微信小程序实现圆形进度条动画
2020/11/18 Javascript
微信js-sdk 录音功能的示例代码
2019/11/01 Javascript
python网络编程实例简析
2014/09/26 Python
分析Python的Django框架的运行方式及处理流程
2015/04/08 Python
Python线程中对join方法的运用的教程
2015/04/09 Python
Python爬虫爬验证码实现功能详解
2016/04/14 Python
python如何去除字符串中不想要的字符
2020/07/05 Python
Python网页正文转换语音文件的操作方法
2018/12/09 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
python字典和json.dumps()的遇到的坑分析
2020/03/11 Python
使用Django xadmin 实现修改时间选择器为不可输入状态
2020/03/30 Python
python 模拟登录B站的示例代码
2020/12/15 Python
基于PyInstaller各参数的含义说明
2021/03/04 Python
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
实现向右循环移位
2014/07/31 面试题
结构工程个人自荐信范文
2013/11/30 职场文书
小学六一儿童节活动方案
2014/08/27 职场文书
党支部群众路线整改措施思想汇报
2014/10/10 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
单位婚育证明范本
2014/11/21 职场文书
员工工作表扬信
2015/05/05 职场文书
运动会表扬稿范文
2015/05/05 职场文书
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
2022/04/21 Python