使用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 入门教程 [翻译] 推荐
Aug 17 Javascript
JS 实现导航栏悬停效果(续)
Sep 24 Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
Mar 13 Javascript
详解JavaScript节流函数中的Throttle
Jul 16 Javascript
微信小程序 登录的简单实现
Apr 19 Javascript
bootstrap table表格客户端分页实例
Aug 07 Javascript
一次记住JavaScript的6个正则表达式方法
Feb 22 Javascript
JavaScript常用数学函数用法示例
May 14 Javascript
JavaScript引用类型Date常见用法实例分析
Aug 08 Javascript
基于ajax及jQuery实现局部刷新过程解析
Sep 12 jQuery
在vue-cli3中使用axios获取本地json操作
Jul 30 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
Aug 31 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
怎么使 Mysql 数据同步
2006/10/09 PHP
Yii2框架数据库简单的增删改查语法小结
2016/08/31 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
JQuery操作Select的Options的Bug(IE8兼容性视图模式)
2013/04/21 Javascript
jQuery点击弹出下拉菜单的小例子
2013/08/01 Javascript
详解JS函数重载
2014/12/04 Javascript
深入理解JavaScript系列(34):设计模式之命令模式详解
2015/03/03 Javascript
深入探讨JavaScript String对象
2015/03/09 Javascript
浅谈js中的闭包
2015/03/16 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
Bootstrap源码解读导航(6)
2016/12/23 Javascript
vue绑定class与行间样式style详解
2017/08/16 Javascript
对node.js中render和send的用法详解
2018/05/14 Javascript
基于nodejs的微信JS-SDK简单应用实现
2019/05/21 NodeJs
jQuery 判断元素是否存在然后按需加载内容的实现代码
2020/01/16 jQuery
vue 移动端记录页面浏览位置的方法
2020/03/11 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
浅析python打包工具distutils、setuptools
2018/04/20 Python
Python 实现文件读写、坐标寻址、查找替换功能
2019/09/11 Python
Python 单例设计模式用法实例分析
2019/09/23 Python
python爬虫beautifulsoup解析html方法
2020/12/07 Python
PyCharm 光标变成黑块的解决方式
2021/02/06 Python
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
美国韩国化妆品和护肤品购物网站:Beautytap
2018/07/29 全球购物
Delphi工程师笔试题
2013/09/21 面试题
学前教育毕业生自荐信
2013/10/29 职场文书
酒店总经理工作职责
2013/12/13 职场文书
环保公益策划方案
2014/08/15 职场文书
公司行政管理制度范本
2015/08/05 职场文书
2019年员工晋升管理制度范本!
2019/07/08 职场文书
Nginx安装完成没有生成sbin目录的解决方法
2021/03/31 Servers
Canvas跟随鼠标炫彩小球的实现
2021/04/11 Javascript
Java方法重载和方法重写的区别到底在哪?
2021/06/11 Java/Android
Apache Hudi的多版本清理服务彻底讲解
2022/03/31 Servers