使用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 相关文章推荐
node.js中的fs.chmodSync方法使用说明
Dec 18 Javascript
实现无刷新联动例子汇总
May 20 Javascript
javascript去掉代码里面的注释
Jul 24 Javascript
js不间断滚动的简单实现
Jun 03 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
Oct 31 Javascript
react实现点击选中的li高亮的示例代码
May 24 Javascript
vue2.0 下拉框默认标题设置方法
Aug 22 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
Apr 08 Javascript
layui清空,重置表单数据的实例
Sep 12 Javascript
简单了解JavaScript sort方法
Nov 25 Javascript
Electron整合React使用搭建开发环境的步骤详解
Jun 07 Javascript
Javascript使用integrity属性进行安全验证
Nov 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 模拟$_PUT实现代码
2010/03/15 PHP
PHP 数据结构 算法 三元组 Triplet
2011/07/02 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
YII Framework框架教程之安全方案详解
2016/03/14 PHP
Windows服务器中PHP如何安装redis扩展
2019/09/27 PHP
laravel 使用auth编写登录的方法
2019/09/30 PHP
php中Swoole的热更新实现代码实例
2021/03/04 PHP
JavaScript中yield实用简洁实现方式
2010/06/12 Javascript
jquery下json数组的操作实现代码
2010/08/09 Javascript
基于jquery实现的类似百度搜索的输入框自动完成功能
2011/08/23 Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
2013/08/03 Javascript
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
JavaScript实现输入框与清空按钮联动效果
2016/09/09 Javascript
jQuery纵向导航菜单效果实现方法
2016/12/19 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
深入理解javascript中的 “this”
2017/01/17 Javascript
详解vue父子组件间传值(props)
2017/06/29 Javascript
微信小程序如何获取用户手机号
2018/01/26 Javascript
React Hooks的深入理解与使用
2018/11/12 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
2019/11/14 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
[02:36]DOTA2上海特锦赛 回忆电竞生涯的重要瞬间
2016/03/25 DOTA
使用Python压缩和解压缩zip文件的教程
2015/05/06 Python
使用Python生成随机密码的示例分享
2016/02/18 Python
用Python写一段用户登录的程序代码
2018/04/22 Python
pycharm设置注释颜色的方法
2018/05/23 Python
python进程和线程用法知识点总结
2019/05/28 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
2019/09/25 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
解决Python发送Http请求时,中文乱码的问题
2020/04/30 Python
Pretty Little Thing爱尔兰:时尚女性服饰
2017/03/27 全球购物
学生评语大全
2014/04/18 职场文书
停车位租赁协议书
2014/09/24 职场文书
2014年幼儿园教研工作总结
2014/12/04 职场文书
六一文艺汇演开幕词
2015/01/29 职场文书
python实现图片批量压缩
2021/04/24 Python