使用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里使用Dom操作Xml
Sep 20 Javascript
JavaScript.Encode手动解码技巧
Jul 14 Javascript
JS常见问题整理(持续更新)
Aug 06 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
May 22 Javascript
jQuery $.extend()用法总结
Jun 15 Javascript
javascript连续赋值问题
Jul 08 Javascript
跟我学习javascript的Date对象
Nov 19 Javascript
jQuery插件实现多级联动菜单效果
Dec 01 Javascript
浅析JSONP技术原理及实现
Jun 08 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
Feb 15 Javascript
vue.js全局API之nextTick全面解析
Jul 07 Javascript
jquery动态添加带有样式的HTML标签元素方法
Feb 24 jQuery
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 神盾解密工具
2014/06/08 PHP
smarty模板引擎中自定义函数的方法
2015/01/22 PHP
什么是PHP文件?如何打开PHP文件?
2017/06/27 PHP
用Div仿showModalDialog模式菜单的效果的代码
2007/03/05 Javascript
jQuery 表单验证扩展(四)
2010/10/20 Javascript
从零开始学习jQuery (十) jQueryUI常用功能实战
2011/02/23 Javascript
jquery中eq和get的区别与使用方法
2011/04/14 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
js AppendChild与insertBefore用法详细对比
2013/12/16 Javascript
js实现表单多按钮提交action的处理方法
2015/10/24 Javascript
Knockoutjs 学习系列(二)花式捆绑
2016/06/07 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
探究Vue.js 2.0新增的虚拟DOM
2016/10/20 Javascript
JS简单实现移动端日历功能示例
2016/12/28 Javascript
vue修改vue项目运行端口号的方法
2017/08/04 Javascript
Vue2.0设置全局样式(less/sass和css)
2017/11/18 Javascript
使用vue如何构建一个自动建站项目
2018/02/05 Javascript
vue页面切换到滚动页面显示顶部的实例
2018/03/13 Javascript
nuxt.js 缓存实践
2018/06/25 Javascript
bootstrap 路径导航 分页 进度条的实例代码
2018/08/06 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
2019/01/08 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
2020/12/14 Vue.js
[17:36]VG战队纪录片
2014/08/21 DOTA
python错误调试及单元文档测试过程解析
2019/12/19 Python
Html5实现首页动态视频背景的示例代码
2019/09/25 HTML / CSS
廉价航班、机票和酒店:JustFly
2018/02/07 全球购物
建筑系毕业生自我鉴定
2014/01/24 职场文书
寄语学生的话
2014/04/10 职场文书
捐书活动总结
2014/05/04 职场文书
电子商务专业求职信
2014/07/10 职场文书
四风对照检查剖析材料
2014/10/07 职场文书
二手车转让协议书
2015/01/29 职场文书
通知的格式范文
2015/04/27 职场文书
2015社区健康教育工作总结
2015/05/20 职场文书
小学大队干部竞选稿
2015/11/20 职场文书
python 利用 PIL 将数组值转成图片的实现
2021/04/12 Python