使用 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 相关文章推荐
有关于JS构造函数的重载和工厂方法
Apr 07 Javascript
jquery ajax跨域解决方法(json方式)
Feb 04 Javascript
createTextRange()的使用示例含文本框选中部分文字内容
Feb 24 Javascript
seaJs的模块定义和模块加载浅析
Jun 06 Javascript
javascript格式化json显示实例分析
Apr 21 Javascript
总结在前端排序中遇到的问题
Jul 19 Javascript
基于JS组件实现拖动滑块验证功能(代码分享)
Nov 18 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
Feb 03 Javascript
JavaScript递归函数定义与用法实例分析
Jan 24 Javascript
微信公众平台 客服接口发消息的实现代码(Java接口开发)
Apr 17 Javascript
vue-week-picker实现支持按周切换的日历
Jun 26 Javascript
JavaScript十大取整方法实例教程
Dec 03 Javascript
详解如何将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
一个ftp类(ini.php)
2006/10/09 PHP
VFP与其他应用程序的集成
2006/10/09 PHP
PHP中session变量的销毁
2014/02/27 PHP
php获取url参数方法总结
2014/11/13 PHP
在Linux系统下一键重新安装WordPress的脚本示例
2015/06/30 PHP
Mac下关于PHP环境和扩展的安装详解
2019/10/17 PHP
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
javascript用户注册提示效果的简单实例
2013/08/17 Javascript
jquery绑定事件不生效的解决方法
2014/02/11 Javascript
javascript内置对象arguments详解
2014/03/16 Javascript
Ext GridPanel加载完数据后进行操作示例代码
2014/06/17 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
2014/12/18 Javascript
nodejs中实现路由功能
2014/12/29 NodeJs
JavaScript时间转换处理函数
2015/04/14 Javascript
Bootstrap的Refresh Icon也spin起来
2016/07/13 Javascript
AngularJS自定义控件实例详解
2016/12/13 Javascript
JavaScript实现格式化字符串函数String.format
2016/12/16 Javascript
vue.js中npm安装教程图解
2018/04/10 Javascript
基于JS实现带动画效果的流程进度条
2018/06/01 Javascript
详解vue移动端项目代码拆分记录
2019/03/15 Javascript
nodejs log4js 使用详解
2019/05/31 NodeJs
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
JS实现canvas简单小画板功能
2020/06/23 Javascript
python实现zencart产品数据导入到magento(python导入数据)
2014/04/03 Python
VSCode中自动为Python文件添加头部注释
2019/11/14 Python
Tensorflow不支持AVX2指令集的解决方法
2020/02/03 Python
详解python metaclass(元类)
2020/08/13 Python
西班牙拥有最佳品牌的动物商店:Animalear.com
2018/01/05 全球购物
ASOS亚洲:ASOS Asia
2018/03/04 全球购物
早晨薰衣草在线女性精品店:Morning Lavender
2021/01/04 全球购物
Python如何定义一个函数
2015/09/01 面试题
大学生军训广播稿
2014/01/24 职场文书
2014年精神文明工作总结
2014/12/23 职场文书
python实现大文本文件分割成多个小文件
2021/04/20 Python
MySQL 亿级数据导入导出及迁移笔记
2021/06/18 MySQL