使用 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 动态table添加colspan\rowspan 参数的方法
Jul 25 Javascript
JavaScript自定义DateDiff函数(兼容所有浏览器)
Mar 01 Javascript
JS更改select内option属性的方法
Oct 14 Javascript
js select实现省市区联动选择
Apr 17 Javascript
bootstrap select插件封装成Vue2.0组件
Apr 17 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
May 10 Javascript
vue webpack打包优化操作技巧
Feb 22 Javascript
React学习笔记之高阶组件应用
Jun 02 Javascript
Vue.js特性Scoped Slots的浅析
Feb 20 Javascript
jQuery zTree插件使用简单教程
Aug 16 jQuery
微信小程序实现拨打电话功能的示例代码
Jun 28 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 传值赋值与引用赋值的区别
2010/12/29 PHP
php实现CSV文件导入和导出
2015/10/24 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
2017/05/26 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
php实现商城购物车的思路和源码分析
2020/07/23 PHP
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
2013/06/24 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
jQuery子元素过滤选择器用法示例
2016/09/09 Javascript
js倒计时显示实例
2016/12/11 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
2017/03/24 jQuery
基于代数方程库Algebra.js解二元一次方程功能示例
2017/06/09 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
2019/09/11 Javascript
简述Vue中容易被忽视的知识点
2019/12/09 Javascript
使用JS来动态操作css的几种方法
2019/12/18 Javascript
vue 动态组件用法示例小结
2020/03/06 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
Python与Redis的连接教程
2015/04/22 Python
python模块简介之有序字典(OrderedDict)
2016/12/01 Python
关于python中密码加盐的学习体会小结
2019/07/15 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
python实现从wind导入数据
2019/12/03 Python
python实现按关键字筛选日志文件
2019/12/24 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
2020/02/12 Python
python3检查字典传入函数键是否齐全的实例
2020/06/05 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
2020/11/20 Python
CSS3的常见transformation图形变化用法小结
2016/05/13 HTML / CSS
Html5+JS实现手机摇一摇功能
2015/04/24 HTML / CSS
canvas实现滑动验证的实现示例
2020/08/11 HTML / CSS
BrandAlley英国:法国折扣奢侈品网上零售商
2017/07/03 全球购物
Sisley法国希思黎中国官网:享誉全球的奢华植物美容品牌
2019/06/30 全球购物
南京迈特望C/C++面试题
2012/07/09 面试题
岗位职责定义及内容
2013/11/08 职场文书
客户表扬信范文
2014/01/10 职场文书
合伙协议书范本
2014/04/21 职场文书
Java Socket实现多人聊天系统
2021/07/15 Java/Android