使用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 相关文章推荐
jQuery源码分析之jQuery中的循环技巧详解
Sep 06 Javascript
javascript在IE下trim函数无法使用的解决方法
Sep 12 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
Jan 29 Javascript
Angularjs 创建可复用组件实例代码
Oct 09 Javascript
JQuery 动态生成Table表格实例代码
Dec 02 Javascript
如何防止INPUT按回车自动提交表单FORM
Dec 06 Javascript
Bootstrap table 定制提示语的加载过程
Feb 20 Javascript
微信、QQ、微博、Safari中使用js唤起App
Jan 24 Javascript
微信小程序scroll-view实现滚动穿透和阻止滚动的方法
Aug 20 Javascript
详解React 的几种条件渲染以及选择
Oct 23 Javascript
使用NestJS开发Node.js应用的方法
Dec 03 Javascript
微信小程序实现搜索指定景点周边美食、酒店
May 18 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
在任意字符集下正常显示网页的方法一
2007/04/01 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
php自动识别文件编码并转换为UTF-8的方法
2014/06/12 PHP
使用PHPExcel操作Excel用法实例分析
2015/03/26 PHP
微信支付扫码支付php版
2016/07/22 PHP
js用图作提交按钮或超连接
2008/03/26 Javascript
jquery ajax执行后台方法
2010/03/18 Javascript
基于jquery的跟随屏幕滚动代码
2012/07/24 Javascript
javascript实现网页屏蔽Backspace事件,输入框不屏蔽
2015/07/21 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
js实现4个方向滚动的球
2017/03/06 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
2017/04/12 Javascript
详解Vue2.0里过滤器容易踩到的坑
2017/06/01 Javascript
在 Vue 项目中引入 tinymce 富文本编辑器的完整代码
2018/05/04 Javascript
详解nuxt路由鉴权(express模板)
2018/11/21 Javascript
vue+element树组件 实现树懒加载的过程详解
2019/10/21 Javascript
vue中js判断长时间不操作界面自动退出登录(推荐)
2020/01/22 Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
2020/03/09 Javascript
深入解读VUE中的异步渲染的实现
2020/06/19 Javascript
JS继承实现方法及优缺点详解
2020/09/02 Javascript
如何使用JS console.log()技巧提高工作效率
2020/10/14 Javascript
让Vue响应Map或Set的变化操作
2020/11/11 Javascript
Python set集合类型操作总结
2014/11/07 Python
python生成器表达式和列表解析
2016/03/10 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
2020/07/13 Python
如何在windows下安装配置python工具Ulipad
2020/10/27 Python
python Timer 类使用介绍
2020/12/28 Python
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
HTML5使用ApplicationCache接口实现离线缓存技术解决离线难题
2012/12/13 HTML / CSS
信息技术专业大学生个人的自我评价
2013/10/05 职场文书
投标服务承诺书
2014/05/28 职场文书
会计试用期自我评价
2014/09/19 职场文书
2016年学习贯彻十八届五中全会精神心得体会
2016/01/05 职场文书
演讲开头怎么书写?
2019/08/06 职场文书