zoukankan      html  css  js  c++  java
  • Vue之仿百度搜索框

    <!DOCTYPE html>  
    <html lang="en">  
    <head>  
        <meta charset="UTF-8">  
        <title></title>  
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">  
        <meta name="apple-mobile-web-app-capable" content="yes">  
        <meta name="apple-mobile-web-app-status-bar-style" content="black">  
        <style>  
            .gray{  
                background: #ccc;  
            }  
        </style>  
        <script src="vue.js"></script>  
        <script src="vue-resource.js"></script>  
        <script>  
            window.onload=function(){  
                new Vue({  
                    el:'body',  
                    data:{  
                        myData:[],  
                        t1:'',  
                        now:-1  
                    },  
                    methods:{  
                        get:function(ev){  
                            if(ev.keyCode==38 || ev.keyCode==40)return;  
      
                            this.$http.jsonp('https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su',{  
                                wd:this.t1  
                            },{  
                                jsonp:'cb'  
                            }).then(function(res){  
                                this.myData=res.data.s;  
                            },function(){  
                                  
                            });  
                        },  
                        changeDown:function(){  
                            this.now++;  
                            if(this.now==this.myData.length)this.now=-1;  
                            this.t1=this.myData[this.now];  
                        },  
                        changeUp:function(){  
                            this.now--;  
                            if(this.now==-2)this.now=this.myData.length-1;  
                            this.t1=this.myData[this.now];  
                        }  
                    }  
                });  
            };  
        </script>  
    </head>  
    <body>  
        <div id="box">  
            <input type="text" v-model="t1" @keyup="get($event)" @keydown.down="changeDown()" @keydown.up.prevent="changeUp()">  
            <ul>  
                <li v-for="value in myData" :class="{gray:$index==now}">  
                    {{value}}  
                </li>  
            </ul>  
            <p v-show="myData.length==0">暂无数据...</p>  
        </div>  
    </body>  
    </html>  

    知识点:

    1.使用v-show:数据长度为0的时候显示‘暂无数据’
    2.使用jsonp获取数据

    3.键盘事件keydown.down   keydown.up按键向上向下的按键

  • 相关阅读:
    vim 乱码问题的方法参考
    Node.js的原型继承函数 util.inherits
    UML类图画法及其之间的几种关系
    repo 小结
    Js_Eval方法
    Js_数组操作
    Js_字体滚动换颜色
    Js_图片轮播
    Jq_网站顶部定时折叠广告
    Js_网站右下角悬浮视窗可关闭广告
  • 原文地址:https://www.cnblogs.com/chaofei/p/7708737.html
Copyright © 2011-2022 走看看