使用Bootrap和Vue实现仿百度搜索功能


Posted in Javascript onOctober 26, 2017

用Vue调用百度的搜索接口,实现简单的搜索功能。

搜索框的样式是基于Bootstrap,当然对样式做了简单的调整, 使之类似于百度搜索。代码如下

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>百度搜索</title>
  <style type="text/css">
    .gray{
      background-color: #eee;
    }
    .listyle{
      font-size: 16px;
      line-height: 35px;
      padding-left: 16px;
    }
    .ulstyle{
      border:1px solid #ccc;
      border-top: none;
    }
  </style>
  <link rel="stylesheet" type="text/css" href="bootstrap.min.css" rel="external nofollow" >
  <script type="text/javascript" src="vue.js"></script>
  <script type="text/javascript" src="vue-resource.js"></script>
  <script type="text/javascript">
    window.onload = function(){
      new Vue({
        el: ".container",
        data: {
          myData:[],
          txt:"",
          nowIndex:-1
        },
        methods:{
          get:function(event){
            if(event.keyCode==38 || event.keyCode==40){
              return;
            }
            if(event.keyCode==13){
              window.open("https://www.baidu.com/s?wd="+this.txt);
              this.txt="";
            }
            this.$http.jsonp("https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su",{
              wd:this.txt
            },{
              jsonp:"cb"
            }).then(function(res){
              this.myData=res.data.s
            },function(res){
              alert(res.status);
            });
          },
          changeDown:function(){
            this.nowIndex++;
            if(this.nowIndex==this.myData.length){
              this.nowIndex=0;
              this.txt=this.myData[0];
            }else{
              this.txt=this.myData[this.nowIndex];
            }
          },
          changeUp:function(){
            this.nowIndex--;
            if(this.nowIndex==-1){
              this.nowIndex=this.myData.length-1;
              this.txt=this.myData[this.nowIndex];
            }else{
              this.txt=this.myData[this.nowIndex];
            }
          },
          mouseOver:function(n){
            this.nowIndex=n;
            this.txt=this.myData[this.nowIndex];
          },
          getMsg:function(){
            window.open("https://www.baidu.com/s?wd="+this.txt);
            this.txt="";
          }
        }
      });
    }
  </script>
</head>
<body>
  <br>
  <div class="container">
    <div class="input-group">
      <input type="text" class="form-control input-lg" placeholder="请输入关键字" v-model="txt" @keyup="get($event)" @keydown.down="changeDown()" @keydown.up="changeUp()">
      <span class="input-group-btn">
        <button class="btn btn-default btn-lg" type="button" @click="getMsg()">搜索</button>
      </span>
    </div>
    <ul class="list-unstyled ulstyle" v-show="myData.length!=0">
      <li v-for="item in myData" :class={gray:$index==nowIndex,listyle:true} @mouseover="mouseOver($index)" @click="getMsg()">{{item}}</li>
    </ul>
  </div>
</body>
</html>

实现效果如下

使用Bootrap和Vue实现仿百度搜索功能

使用Bootrap和Vue实现仿百度搜索功能

总结

以上所述是小编给大家介绍的使用Bootrap和Vue实现仿百度搜索功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript中的闭包原理分析
Mar 08 Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
Nov 17 Javascript
JavaScript在for循环中绑定事件解决事件参数不同的情况
Jan 20 Javascript
浅谈JavaScript Array对象
Dec 29 Javascript
JavaScript中的原型prototype属性使用详解
Jun 05 Javascript
JavaScript中原型链存在的问题解析
Sep 25 Javascript
纯js实现手风琴效果代码
Apr 17 Javascript
js获取一组日期中最近连续的天数
May 25 Javascript
vue 使用Jade模板写html,stylus写css的方法
Feb 23 Javascript
深入理解 JS 垃圾回收
Jun 03 Javascript
vue 函数调用加括号与不加括号的区别
Oct 29 Javascript
nestjs中异常过滤器Exceptionfilter的具体使用
Feb 07 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
Oct 26 #Javascript
vue路由跳转时判断用户是否登录功能的实现
Oct 26 #Javascript
webpack3之loader全解析
Oct 26 #Javascript
JS使用正则表达式找出最长连续子串长度
Oct 26 #Javascript
AngularJS实现的输入框字数限制提醒功能示例
Oct 26 #Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
Oct 26 #Javascript
详谈构造函数加括号与不加括号的区别
Oct 26 #Javascript
You might like
PHP安装攻略:常见问题解答(二)
2006/10/09 PHP
php json转换成数组形式代码分享
2014/11/10 PHP
php 自定义错误日志实例详解
2016/11/12 PHP
详解Yii2.0 rules验证规则集合
2017/03/21 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
2018/08/06 PHP
拥抱模块化的JavaScript
2012/03/07 Javascript
jQuery 取值、赋值的基本方法整理
2014/03/31 Javascript
js实现新年倒计时效果
2015/12/10 Javascript
Node.js 文件夹目录结构创建实例代码
2016/07/08 Javascript
js实现千分符和保留几位小数的简单实例
2016/08/01 Javascript
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
2016/10/27 Javascript
浅谈Angular.js中使用$watch监听模型变化
2017/01/10 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
2017/03/24 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
node.js的http.createServer过程深入解析
2019/06/06 Javascript
js实现网页版贪吃蛇游戏
2020/02/22 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
2020/04/07 Javascript
浅谈Vue 自动化部署打包上线
2020/06/14 Javascript
[38:40]2018DOTA2亚洲邀请赛 4.6淘汰赛 mineski vs LGD 第一场
2018/04/10 DOTA
Python XML RPC服务器端和客户端实例
2014/11/22 Python
简单介绍Ruby中的CGI编程
2015/04/10 Python
Python中py文件引用另一个py文件变量的方法
2018/04/29 Python
opencv与numpy的图像基本操作
2019/03/08 Python
DataFrame.groupby()所见的各种用法详解
2020/06/14 Python
匈牙利最大的健身制造商和销售商:inSPORTline
2018/10/30 全球购物
写好自荐信的几个要点
2013/12/26 职场文书
电子商务应届生自我鉴定
2014/01/13 职场文书
农贸市场管理制度
2014/01/31 职场文书
模具专业自荐信
2014/05/29 职场文书
团队会宣传标语
2014/10/09 职场文书
整改报告格式
2014/11/06 职场文书
2015年秋季小班开学寄语
2015/05/27 职场文书
诺贝尔奖获得者名言100句:句句启人心智,值永久收藏
2019/08/09 职场文书
如何制作自己的原生JavaScript路由
2021/05/05 Javascript