使用 Vue.js 仿百度搜索框的实例代码


Posted in Javascript onMay 09, 2017

整理文档,搜刮出一个使用 Vue.js 仿百度搜索框的实例代码,稍微整理精简一下做下分享。

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>Vue demo</title>
  <style type="text/css">
  .bg {
    background: #ccc;
  }
  </style>
  <script src="https://cdn.bootcss.com/vue/2.1.7/vue.min.js"></script>
  <script src="https://cdn.bootcss.com/vue-resource/1.3.1/vue-resource.min.js"></script>
  <script type="text/javascript">
  window.onload = function() {
    new Vue({
      el: '#box',
      data: {
        inputText: '',
        text: '',
        nowIndex: -1,
        result: []
      },
      methods: {
        show: function(ev) {
          if (ev.keyCode == 38 || ev.keyCode == 40) {
            if (this.nowIndex < -1){
              return;
            }
            if (this.nowIndex != this.result.length && this.nowIndex != -1) {
              this.inputText = this.result[this.nowIndex];
            }
            return;
          }
          if (ev.keyCode == 13) {
            window.open('https://www.baidu.com/s?wd=' + this.inputText, '_blank');
            this.inputText = '';
          }
          this.text = this.inputText;
          this.$http.jsonp('https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su', {
            params: {
              wd: this.inputText
            },
            jsonp: 'cb'
          }).then(res => {
            this.result = res.data.s;
          })
        },
        down: function() {
          this.nowIndex++;
          if (this.nowIndex == this.result.length) {
            this.nowIndex = -1;
            this.inputText = this.text;
          }
        },
        up: function() {
          this.nowIndex--;
          if (this.nowIndex < -1){
            this.nowIndex = -1;
            return;
          }
          if (this.nowIndex == -1) {
            this.nowIndex = this.result.length;
            this.inputText = this.text;
          }
        }
      }
    });
  }
  </script>
</head>

<body>
  <div id="box">
    <input type="text" placeholder="请输入搜索内容" v-model='inputText' @keyup='show($event)' @keydown.down='down()' @keydown.up.prevent='up()'>
    <ul>
      <li v-for="(item, index) in result" :class='{bg: index==nowIndex}'>
        {{item}}
      </li>
    </ul>
  </div>
</body>

</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript的函数
Jan 31 Javascript
js中巧用cssText属性批量操作样式
Mar 13 Javascript
Flexigrid在IE下不显示数据的处理的解决方法
Oct 24 Javascript
客户端js判断文件类型和文件大小即限制上传大小
Nov 20 Javascript
javascript设计模式之中介者模式Mediator
Dec 30 Javascript
Jquery实时监听input value的实例
Jan 26 Javascript
Jquery鼠标放上去显示全名的实现方法
Feb 06 Javascript
JavaScript两个变量交换值的实现方法
Mar 01 Javascript
详解vue-cli脚手架中webpack配置方法
Aug 22 Javascript
Layui实现主窗口和Iframe层参数传递
Nov 14 Javascript
理解JavaScript中的Proxy 与 Reflection API
Sep 21 Javascript
如何在 Vue 表单中处理图片
Jan 26 Vue.js
详解如何将angular-ui的图片轮播组件封装成一个指令
May 09 #Javascript
使用ES6语法重构React代码详解
May 09 #Javascript
JQuery实现定时刷新功能代码
May 09 #jQuery
React.js中常用的ES6写法总结(推荐)
May 09 #Javascript
js上传图片预览的实现方法
May 09 #Javascript
react开发中如何使用require.ensure加载es6风格的组件
May 09 #Javascript
Vue2单一事件管理组件通信
May 09 #Javascript
You might like
PHP输出一个等腰三角形的方法
2015/05/12 PHP
php array_key_exists() 与 isset() 的区别
2016/10/24 PHP
Laravel 简单实现Ajax滚动加载示例
2019/10/22 PHP
让ie运行js时提示允许阻止内容运行的解决方法
2010/10/24 Javascript
JQuery扩展插件Validate—6 radio、checkbox、select的验证
2011/09/05 Javascript
用json方式实现在 js 中建立一个map
2014/05/02 Javascript
简介JavaScript中toTimeString()方法的使用
2015/06/12 Javascript
JS实现可拖曳、可关闭的弹窗效果
2015/09/26 Javascript
js事件处理程序跨浏览器解决方案
2016/03/27 Javascript
Javascript实现苹果悬浮虚拟按钮
2016/04/10 Javascript
第一次接触神奇的Bootstrap导航条
2016/08/09 Javascript
AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】
2016/11/02 Javascript
vuejs指令详解
2017/02/07 Javascript
Vue.js中组件中的slot实例详解
2017/07/17 Javascript
图文介绍Vue父组件向子组件传值
2018/02/17 Javascript
TypeScript开发Node.js程序的方法
2019/04/30 Javascript
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
pycharm 使用心得(七)一些实用功能介绍
2014/06/06 Python
python实现字符串和日期相互转换的方法
2015/05/13 Python
Django框架组成结构、基本概念与文件功能分析
2019/07/30 Python
Pandas聚合运算和分组运算的实现示例
2019/10/17 Python
python学生信息管理系统实现代码
2019/12/17 Python
Python爬虫程序架构和运行流程原理解析
2020/03/09 Python
Python基于httpx模块实现发送请求
2020/07/07 Python
利用python 读写csv文件
2020/09/10 Python
用pip给python安装matplotlib库的详细教程
2021/02/24 Python
酒店前厅员工辞职信
2014/01/08 职场文书
2014年计算机专业个人自我评价
2014/01/19 职场文书
五年级英语教学反思
2014/01/31 职场文书
大学生校园创业计划书
2014/02/08 职场文书
战友聚会主持词
2014/04/02 职场文书
社会实践的活动方案
2014/08/22 职场文书
2015出纳试用期工作总结
2014/12/12 职场文书
MySQL通过binlog恢复数据
2021/05/27 MySQL
科普 | 业余无线电知识-波段篇
2022/02/18 无线电
python playwright之元素定位示例详解
2022/07/23 Python