使用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 animate图片模向滑动示例代码
Jan 26 Javascript
jquery统计复选框选中示例
Nov 05 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
Mar 19 Javascript
纯js实现div内图片自适应大小(已测试,兼容火狐)
Jun 16 Javascript
禁止iframe页面的所有js脚本如alert及弹出窗口等
Sep 03 Javascript
JavaScript图片轮播代码分享
Jul 31 Javascript
jquery编写Tab选项卡滚动导航切换特效
Jul 17 Javascript
jQuery实现的浮动层div浏览器居中显示效果
Feb 03 Javascript
在vue-cli搭建的项目中增加后台mock接口的方法
Apr 26 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
Apr 04 Javascript
vue单页应用的内存泄露定位和修复问题小结
Aug 02 Javascript
原生JS实现留言板
Mar 26 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下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
PHP安全的URL字符串base64编码和解码
2014/06/19 PHP
PHP快速导出百万级数据到CSV或者EXCEL文件
2020/11/27 PHP
ASP SQL防注入的方法
2008/12/25 Javascript
基于jquery的超简单上下翻
2010/04/20 Javascript
JS编程小常识很有用
2012/11/26 Javascript
浅析js中2个等号与3个等号的区别
2013/08/06 Javascript
Javascript动态引用CSS文件的2种方法介绍
2014/06/06 Javascript
jQuery插件slick实现响应式移动端幻灯片图片切换特效
2015/04/12 Javascript
JavaScript操作HTML DOM节点的基础教程
2016/03/11 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
2016/05/18 Javascript
如何使用Vuex+Vue.js构建单页应用
2016/10/27 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
2017/12/20 Javascript
详解ajax的data参数错误导致页面崩溃
2018/04/30 Javascript
nodejs用gulp管理前端文件方法
2018/06/24 NodeJs
从零开始学习搭建React脚手架项目
2018/08/23 Javascript
微信小程序实现联动选择器
2019/02/15 Javascript
微信小程序进入广告实现代码实例
2019/09/19 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
vue监听滚动事件的方法
2020/12/21 Vue.js
python爬虫爬取快手视频多线程下载功能
2018/02/28 Python
python 同时运行多个程序的实例
2019/01/07 Python
python基于C/S模式实现聊天室功能
2019/01/09 Python
详解爬虫被封的问题
2019/04/23 Python
python提取照片坐标信息的实例代码
2019/08/14 Python
Python定义一个Actor任务
2020/07/29 Python
Python如何读写二进制数组数据
2020/08/01 Python
如何使用Pytorch搭建模型
2020/10/26 Python
我的动漫时代的创业计划书范文
2014/01/27 职场文书
小学英语教学反思
2014/01/30 职场文书
决心书标准格式
2014/03/11 职场文书
电气自动化求职信
2014/06/24 职场文书
幼儿园个人师德总结
2015/02/06 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
村官2015年度工作总结
2015/10/14 职场文书
zabbix配置nginx监控的实现
2022/05/25 Servers