使用 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 网页跳转的方法
Dec 24 Javascript
JavaScript prototype属性使用说明
May 13 Javascript
JQuery中serialize()、serializeArray()和param()方法示例介绍
Jul 31 Javascript
js中的事件捕捉模型与冒泡模型实例分析
Jan 10 Javascript
JavaScript取得键盘按下方向键是哪个的方法
Aug 04 Javascript
Javascript Function.prototype.bind详细分析
Dec 29 Javascript
jQuery实现别踩白块儿网页版小游戏
Jan 18 Javascript
详解Vue-基本标签和自定义控件
Mar 24 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
Oct 24 Javascript
简单了解Ajax表单序列化的实现方法
Jun 14 Javascript
javascript 代码是如何被压缩的示例代码
May 06 Javascript
vue实现input输入模糊查询的三种方式
Aug 14 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
利用curl 多线程 模拟 并发的详解
2013/06/14 PHP
一些不错的js函数ajax
2008/08/20 Javascript
jQuery 添加/移除CSS类实现代码
2010/02/11 Javascript
两个比较有用的Javascript工具函数代码
2010/02/17 Javascript
UI Events 用户界面事件
2012/06/27 Javascript
Jquery实现带动画效果的经典二级导航菜单
2013/03/22 Javascript
将Datatable转化成json发送前台实现思路
2013/09/06 Javascript
js拆分字符串并将分割的数据放到数组中的方法
2015/05/06 Javascript
深入理解关于javascript中apply()和call()方法的区别
2016/04/12 Javascript
jQuery中text() val()和html()的区别实例详解
2016/06/28 Javascript
简单三步实现报表页面集成天气
2016/12/15 Javascript
echarts3 使用总结(绘制各种图表,地图)
2017/01/05 Javascript
AngularJS使用angular.bootstrap完成模块手动加载的方法分析
2017/01/19 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
mongoose设置unique不生效问题的解决及如何移除unique的限制
2017/11/07 Javascript
浅谈angularJS2中的界面跳转方法
2018/08/31 Javascript
nginx部署多个vue项目的方法示例
2020/09/06 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
python利用标准库如何获取本地IP示例详解
2017/11/01 Python
python docx 中文字体设置的操作方法
2018/05/08 Python
python中实现字符串翻转的方法
2018/07/11 Python
Python对切片命名的实现方法
2018/10/16 Python
python 使用值来排序一个字典的方法
2018/11/16 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
Python获取好友地区分布及好友性别分布情况代码详解
2019/07/10 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
python调用matplotlib模块绘制柱状图
2019/10/18 Python
汉森冲浪板:Hansen Surfboards
2018/05/19 全球购物
大学生自我鉴定书
2014/03/24 职场文书
客运企业隐患排查工作方案
2014/06/06 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
优秀工作者事迹材料
2014/12/26 职场文书
2016年安康杯竞赛活动总结
2016/04/05 职场文书
JMeter对MySQL数据库进行压力测试的实现步骤
2022/01/22 MySQL