使用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 相关文章推荐
一些易混淆且不常用的属性,希望有用
Jan 29 Javascript
js 小数取整的函数
May 10 Javascript
jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)
Jan 23 Javascript
js中top/parent/frame概述及案例应用
Feb 06 Javascript
通过javascript获取iframe里的值示例代码
Jun 24 Javascript
实例分析javascript中的call()和apply()方法
Nov 28 Javascript
TypeScript 学习笔记之基本类型
Jun 19 Javascript
javascript实现base64 md5 sha1 密码加密
Sep 09 Javascript
javascript实现简单的全选和反选功能
Jan 05 Javascript
Vue.js组件tabs实现选项卡切换效果
Dec 01 Javascript
vue实现学生信息管理系统
May 30 Javascript
如何用JS实现网页瀑布流布局
Apr 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中try catch捕获异常实例详解
2014/11/21 PHP
WordPress中注册菜单与调用菜单的方法详解
2015/12/18 PHP
PHP中的表达式简述
2016/05/29 PHP
js动态切换图片的方法
2015/01/20 Javascript
轻松实现js弹框显示选项
2016/09/13 Javascript
JS+CSS3制作炫酷的弹窗效果
2016/11/08 Javascript
vue2.0结合Element实现select动态控制input禁用实例
2017/05/12 Javascript
详解vue-cli脚手架build目录中的dev-server.js配置文件
2017/11/24 Javascript
jQuery扩展方法实现Form表单与Json互相转换的实例代码
2018/09/05 jQuery
vue-quill-editor的使用及个性化定制操作
2020/08/04 Javascript
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
[02:55]DOTA2英雄基础教程 发条技师
2013/12/04 DOTA
[02:57]DOTA2亚洲邀请赛小组赛第四日 赛事回顾
2015/02/02 DOTA
python实现百度关键词排名查询
2014/03/30 Python
跟老齐学Python之有点简约的元组
2014/09/24 Python
使用PDB模式调试Python程序介绍
2015/04/05 Python
Python实现的RSS阅读器实例
2015/07/25 Python
Selenium定时刷新网页的实现代码
2018/10/31 Python
Python时间和字符串转换操作实例分析
2019/03/16 Python
详解Python二维数组与三维数组切片的方法
2019/07/18 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
Python基础之变量基本用法与进阶详解
2020/01/03 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
python为什么要安装到c盘
2020/07/20 Python
英国家居装饰品、户外家具和玻璃器皿购物网站:Rinkit.com
2019/11/04 全球购物
斯洛伐克最大的婴儿食品和用品网上商店:Feedo.sk
2020/12/21 全球购物
国外的一些J2EE面试题一
2012/10/13 面试题
财会自我鉴定范文
2013/12/27 职场文书
图书室管理制度
2014/01/19 职场文书
计算机学生的自我评价分享
2014/02/18 职场文书
大学生新学期计划书
2014/04/28 职场文书
党员学习中共十八大思想报告
2014/09/12 职场文书
先进基层党组织材料
2014/12/25 职场文书
护士个人年度总结范文
2015/02/13 职场文书
交通事故被告答辩状
2015/05/22 职场文书
2015年依法治校工作总结
2015/07/27 职场文书