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 chili图片远处放大插件
Nov 30 Javascript
js判断输入是否为正整数、浮点数等数字的函数代码
Nov 17 Javascript
基于jquery的修改当前TAB显示标题的代码
Dec 11 Javascript
javascript学习笔记(十九) 节点的操作实现代码
Jun 20 Javascript
JS如何实现文本框随文本的长度而增长
Jul 30 Javascript
jQuery Validate设置onkeyup验证的实例代码
Dec 09 Javascript
jQuery Password Validation密码验证
Dec 30 Javascript
深入理解node.js之path模块
May 03 Javascript
JS中图片压缩的方法小结
Nov 14 Javascript
使用Node搭建reactSSR服务端渲染架构
Aug 30 Javascript
vuex存值与取值的实例
Nov 06 Javascript
JQuery基于FormData异步提交数据文件
Sep 01 jQuery
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
PHP+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
ThinkPHP之R方法实例详解
2014/06/20 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
JavaScript 字符串连接性能优化
2008/12/20 Javascript
原生JS实现加入收藏夹的代码
2013/10/24 Javascript
jquery实现保存已选用户
2014/07/21 Javascript
dreamweaver 8实现Jquery自动提示
2014/12/04 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
Jquery操作cookie记住用户名
2016/03/29 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
JS触摸事件、手势事件详解
2017/05/04 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
2017/05/11 Javascript
实例教学如何写vue插件
2017/11/30 Javascript
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
2017/12/09 Javascript
JS实现页面鼠标点击出现图片特效
2020/08/19 Javascript
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
Python中static相关知识小结
2018/01/02 Python
选择python进行数据分析的理由和优势
2019/06/25 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
Python如何测试stdout输出
2020/08/10 Python
HTML5实现直播间评论滚动效果的代码
2020/05/27 HTML / CSS
Timex手表官网:美国运动休闲手表品牌
2017/01/28 全球购物
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
Bluebella德国官网:英国性感内衣和睡衣品牌
2019/11/08 全球购物
平面设计师的工作职责
2013/11/21 职场文书
商务日语毕业生自荐信
2013/11/23 职场文书
不假外出检讨书
2014/01/27 职场文书
幼儿园庆六一游园活动方案
2014/01/29 职场文书
企业读书活动总结
2014/06/30 职场文书
2014年质检员工作总结
2014/11/18 职场文书
学生会生活部工作总结2015
2015/03/31 职场文书
css display table 自适应高度、宽度问题的解决
2021/05/07 HTML / CSS
Node实现搜索框进行模糊查询
2021/06/28 Javascript
使用CSS实现按钮边缘跑马灯动画
2023/05/07 HTML / CSS