使用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 validator 插件增加日期比较方法
Feb 21 Javascript
js+jquery常用知识点汇总
Mar 03 Javascript
javascript实现可全选、反选及删除表格的方法
May 15 Javascript
javascript运动框架用法实例分析(实现放大与缩小效果)
Jan 08 Javascript
理解js回收机制通俗易懂版
Feb 29 Javascript
jQuery元素选择器实例代码
Feb 06 Javascript
ES6新特性一: let和const命令详解
Apr 20 Javascript
微信小程序视图template模板引用的实例详解
Sep 20 Javascript
JS栈stack类的实现与使用方法示例
Jan 31 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
Jun 21 Javascript
JavaScript HTML DOM 元素 (节点)新增,编辑,删除操作实例分析
Mar 02 Javascript
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
May 25 Vue.js
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中接口的应用
2015/08/12 PHP
PHP编程基本语法快速入门手册
2016/01/07 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
php设计模式之职责链模式定义与用法经典示例
2019/09/19 PHP
Jquery AJAX 框架的使用方法
2009/11/03 Javascript
jQuery lazyload 的重复加载错误以及修复方法
2010/11/19 Javascript
JavaScript给按钮绑定点击事件(onclick)的方法
2015/04/07 Javascript
jquery实现滑动特效代码
2015/08/10 Javascript
JavaScript实现给按钮加上双重动作的方法
2015/08/14 Javascript
在jQuery中处理XML数据的大致方法
2015/08/14 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
2015/09/06 Javascript
基于jquery实现全屏滚动效果
2015/11/26 Javascript
jQuery插件Validation快速完成表单验证的方式
2016/07/28 Javascript
jquery删除table当前行的实例代码
2016/10/07 Javascript
微信小程序 页面跳转如何实现传值
2017/04/05 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
浅谈javascript中的prototype和__proto__的理解
2019/04/07 Javascript
vue3.0+vue-router+element-plus初实践
2020/12/02 Vue.js
python实现二维码扫码自动登录淘宝
2016/12/27 Python
python处理Excel xlrd的简单使用
2017/09/12 Python
快速了解python leveldb
2018/01/18 Python
python简易远程控制单线程版
2018/06/20 Python
Python for循环与range函数的使用详解
2019/03/23 Python
Python填充任意颜色,不同算法时间差异分析说明
2020/05/16 Python
Python正则表达式如何匹配中文
2020/05/27 Python
详解HTML5中的manifest缓存使用
2015/09/09 HTML / CSS
意大利自行车商店:Cingolani Bike Shop
2019/09/03 全球购物
日本动漫周边服饰销售网站:Atsuko
2019/12/16 全球购物
深圳茁壮笔试题
2015/05/28 面试题
出纳岗位职责模板
2013/11/27 职场文书
《美丽的公鸡》教学反思
2014/02/25 职场文书
班主任工作经验交流材料
2014/05/13 职场文书
动画设计系毕业生求职信
2014/07/15 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书
在python中实现导入一个需要传参的模块
2021/05/12 Python
MySQL 字符集 character
2022/05/04 MySQL