使用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之防止冒泡事件
May 24 Javascript
angularjs实现多张图片上传并预览功能
Feb 24 Javascript
详解vue.js移动端导航navigationbar的封装
Jul 05 Javascript
基于JavaScript实现五子棋游戏
Aug 26 Javascript
js自定义trim函数实现删除两端空格功能
Feb 09 Javascript
在Vue项目中使用d3.js的实例代码
May 01 Javascript
微信小程序下拉框功能的实例代码
Nov 06 Javascript
webpack打包多页面的方法
Nov 30 Javascript
基于three.js实现的3D粒子动效实例代码
Apr 09 Javascript
vue项目中mock.js的使用及基本用法
May 22 Javascript
JavaScript单线程和任务队列原理解析
Feb 04 Javascript
JavaScript实现答题评分功能页面
Jun 24 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(3) php 函数
2010/02/15 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
2014/06/10 PHP
php投票系统之增加与删除投票(管理员篇)
2016/07/01 PHP
thinkPHP中U方法加密传递参数功能示例
2018/05/29 PHP
由点击页面其它地方隐藏div所想到的jQuery的delegate
2013/08/29 Javascript
javaScript array(数组)使用字符串作为数组下标的方法
2013/11/19 Javascript
jQuery select表单提交省市区城市三级联动核心代码
2014/06/09 Javascript
JavaScript中匿名、命名函数的性能测试
2014/09/04 Javascript
Nodejs极简入门教程(三):进程
2014/10/27 NodeJs
轻松创建nodejs服务器(7):阻塞操作的实现
2014/12/18 NodeJs
浅谈javascript中基本包装类型
2015/06/03 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
2015/09/23 Javascript
深入理解在JS中通过四种设置事件处理程序的方法
2017/03/02 Javascript
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
2017/12/09 Javascript
electron实现qq快捷登录的方法示例
2018/10/22 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
react MPA 多页配置详解
2019/10/18 Javascript
vue 实现移动端键盘搜索事件监听
2019/11/06 Javascript
详解JavaScript作用域、作用域链和闭包的用法
2020/09/03 Javascript
[02:17]2016完美“圣”典风云人物:Sccc专访
2016/12/03 DOTA
[51:27]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
下载糗事百科的内容_python版
2008/12/07 Python
Pycharm无法显示动态图片的解决方法
2018/10/28 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
python numpy存取文件的方式
2020/04/01 Python
python-xpath获取html文档的部分内容
2020/03/06 Python
python实现FTP循环上传文件
2020/03/20 Python
Python基于paramunittest模块实现excl参数化
2020/04/26 Python
python 使用elasticsearch 实现翻页的三种方式
2020/07/31 Python
python从Oracle读取数据生成图表
2020/10/14 Python
为什么说Ruby是一种真正的面向对象程序设计语言
2012/10/30 面试题
上班时间打瞌睡检讨书
2014/09/26 职场文书
走群众路线剖析材料
2014/10/09 职场文书
自查自纠工作情况报告
2014/10/29 职场文书
优秀少先队员事迹材料
2014/12/24 职场文书
mysql查看表结构的三种方法总结
2022/07/07 MySQL