使用 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 相关文章推荐
火狐浏览器(firefox)下获得Event对象以及keyCode
Nov 13 Javascript
js 赋值包含单引号双引号问题的解决方法
Feb 26 Javascript
关闭时刷新父窗口两种方法
May 07 Javascript
js中的如何定位固定层的位置
Jun 15 Javascript
jQuery中的jQuery()方法用法分析
Dec 27 Javascript
JavaScript实现同一页面内两个表单互相传值的方法
Aug 12 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
Jan 30 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
May 17 Javascript
微信小程序 wx:key详细介绍
Oct 28 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
Jan 06 Javascript
一个因@click.stop引发的bug的解决
Jan 08 Javascript
详解小程序横屏方案对比
Jun 28 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
PHP 批量删除 sql语句
2009/06/05 PHP
Session保存到数据库的php类分享
2011/10/24 PHP
php实例分享之mysql数据备份
2014/05/19 PHP
PHP实现的英文名字全拼随机排号脚本
2014/07/04 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
2014/07/23 PHP
我整理的PHP 7.0主要新特性
2016/01/07 PHP
JSONP获取Twitter和Facebook文章数的具体步骤
2014/02/24 Javascript
node.js中的http.response.setHeader方法使用说明
2014/12/14 Javascript
14个有用的Jquery技巧分享
2015/01/08 Javascript
jQuery中 delegate使用的问题
2015/07/03 Javascript
JavaScript类继承及实例化的方法
2015/07/25 Javascript
深入浅析react native es6语法
2015/12/09 Javascript
原生JavaScript实现滚动条效果
2020/03/24 Javascript
window.onerror()的用法与实例分析
2016/01/27 Javascript
jquery.validate表单验证插件使用方法解析
2016/11/07 Javascript
移动适配的几种方案(三种方案)
2016/11/25 Javascript
微信小程序组件 marquee实例详解
2017/06/23 Javascript
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
用vue2.0实现点击选中active其他选项互斥的效果
2018/04/12 Javascript
Layui Table js 模拟选中checkbox的例子
2019/09/03 Javascript
小程序实现长按保存图片的方法
2019/12/31 Javascript
JavaScript中跨域问题的深入理解
2021/03/04 Javascript
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
2017/10/20 Python
django2用iframe标签完成网页内嵌播放b站视频功能
2018/06/20 Python
将Python文件打包成.EXE可执行文件的方法
2019/08/11 Python
应用OpenCV和Python进行SIFT算法的实现详解
2019/08/21 Python
Keras使用tensorboard显示训练过程的实例
2020/02/15 Python
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
20年同学聚会邀请函
2014/02/04 职场文书
党的群众路线教育实践活动个人承诺书
2014/05/22 职场文书
社区助残日活动总结
2014/08/29 职场文书
卫校毕业生自我鉴定
2014/09/28 职场文书
2014年机关作风建设工作总结
2014/10/23 职场文书
会议接待欢迎词范文
2015/01/26 职场文书
保送生自荐信范文
2015/03/26 职场文书
干货干货!2019最新优秀创业计划书
2019/03/21 职场文书