使用 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 火狐(firefox)不显示本地图片问题解决
Jul 05 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
Jan 26 Javascript
jquery实现背景墙聚光灯效果示例分享
Mar 02 Javascript
javascript中call apply 的应用场景
Apr 16 Javascript
前端分页功能的实现以及原理(jQuery)
Jan 22 Javascript
ReactNative页面跳转Navigator实现的示例代码
Aug 02 Javascript
Angular.js通过自定义指令directive实现滑块滑动效果
Oct 13 Javascript
Angular5中提取公共组件之radio list的实例代码
Jul 10 Javascript
解决Vue调用springboot接口403跨域问题
Sep 02 Javascript
Layui表格行工具事件与数据回填方法
Sep 13 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
Mar 09 Javascript
JS实现手写 forEach算法示例
Apr 29 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
页面利用渐进式JPEG来提升用户体验度
2014/12/01 PHP
php验证身份证号码正确性的函数
2016/07/20 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
php+js实现的无刷新下载文件功能示例
2019/08/23 PHP
脚本收藏iframe
2006/07/21 Javascript
javawscript 三级菜单的实现原理
2009/07/01 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
2013/01/23 Javascript
JavaScript中toString()方法的使用详解
2015/06/05 Javascript
jquery实现仿新浪微博评论滚动效果
2015/08/06 Javascript
Jquery插件easyUi实现表单验证示例
2015/12/15 Javascript
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
自定义vue组件发布到npm的方法
2018/05/09 Javascript
Angular父子组件通过服务传参的示例方法
2018/10/31 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
2018/12/12 Javascript
layui文件上传控件带更改后数据传值的方法
2019/09/23 Javascript
[03:22]DSPL第一期精彩集锦:酷炫到底!
2014/11/07 DOTA
[01:31]完美与DOTA2历程
2014/07/31 DOTA
python遍历目录的方法小结
2016/04/28 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
2016/06/14 Python
分数霸榜! python助你微信跳一跳拿高分
2018/01/08 Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
2018/07/04 Python
python判断数字是否是超级素数幂
2018/09/27 Python
bluepy 一款python封装的BLE利器简单介绍
2019/06/25 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
2019/08/27 Python
DjangoWeb使用Datatable进行后端分页的实现
2020/05/18 Python
世界上最大的在线汽车租赁预订平台:Rentalcars.com(支持中文)
2018/10/12 全球购物
小班秋游活动方案
2014/02/22 职场文书
机关党员2014全国两会学习心得体会
2014/03/10 职场文书
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
关于做家务的心得体会
2016/01/23 职场文书
2016学校先进集体事迹材料
2016/02/29 职场文书
python数据分析之用sklearn预测糖尿病
2021/04/22 Python
基于PyTorch实现一个简单的CNN图像分类器
2021/05/29 Python
MySQL 常见存储引擎的优劣
2021/06/02 MySQL
Python数组变形的几种实现方法
2022/05/30 Python
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL