使用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 相关文章推荐
setInterval计时器不准的问题解决方法
May 08 Javascript
JQuery插入DOM节点的方法
Jun 11 Javascript
Jquery Easyui搜索框组件SearchBox使用详解(19)
Dec 17 Javascript
js中作用域的实例解析
Mar 16 Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
Apr 28 Javascript
解决option标签selected=&quot;selected&quot;属性失效的问题
Nov 06 Javascript
vue axios数据请求get、post方法及实例详解
Sep 11 Javascript
vue使用v-if v-show页面闪烁,div闪现的解决方法
Oct 12 Javascript
three.js实现圆柱体
Dec 30 Javascript
jquery将json转为数据字典的实例代码
Oct 11 jQuery
js实现视图和数据双向绑定的方法分析
Feb 05 Javascript
VSCode搭建Vue项目的方法
Apr 30 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遍历数组的方法汇总分析
2013/06/08 PHP
php模拟用户自动在qq空间发表文章的方法
2015/01/07 PHP
PHP 文件上传后端处理实用技巧方法
2017/01/06 PHP
php生成无限栏目树
2017/03/16 PHP
js 操作select相关方法函数
2009/12/06 Javascript
JQuery+JS实现仿百度搜索结果中关键字变色效果
2011/08/02 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
Jquery 模板数据绑定插件的使用方法详解
2013/07/08 Javascript
JavaScript中Number.MIN_VALUE属性的使用示例
2015/06/04 Javascript
jQuery检测返回值的数据类型
2015/07/13 Javascript
探究JavaScript函数式编程的乐趣
2015/12/14 Javascript
JavaScript数组的栈方法与队列方法详解
2016/05/26 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
Node.js中看JavaScript的引用
2017/04/22 Javascript
angular ng-click防止重复提交实例
2017/06/16 Javascript
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
JS实现的A*寻路算法详解
2018/12/14 Javascript
微信小程序蓝牙连接小票打印机实例代码详解
2019/06/03 Javascript
node读写Excel操作实例分析
2019/11/06 Javascript
JS如何在不同平台实现多语言方式
2020/07/16 Javascript
python基础 range的用法解析
2019/08/23 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
2020/02/26 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
2020/06/28 Python
VICHY薇姿英国官网:全球专业敏感肌护肤领先品牌
2017/07/04 全球购物
法人代表委托书
2014/04/04 职场文书
网站创业计划书
2014/04/30 职场文书
希特勒经典演讲稿
2014/05/19 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
客户付款通知书
2015/04/23 职场文书
2016年寒假社会实践活动心得体会
2015/10/09 职场文书
2016大一新生入学教育心得体会
2016/01/23 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书
python实现过滤敏感词
2021/05/08 Python