Vue.js模拟百度下拉框

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>智能社——http://www.zhinengshe.com</title>
 6     <style>
 7         .gray{
 8             background: #ccc;
 9         }
10     </style>
11     <script src="vue.js"></script>
12     <script src="vue-resource.js"></script>
13     <script>
14         window.onload=function(){
15             new Vue({
16                 el:‘body‘,
17                 data:{
18                     myData:[],
19                     t1:‘‘,
20                     now:-1
21                 },
22                 methods:{
23                     get:function(ev){

                
24                         if(ev.keyCode==38 || ev.keyCode==40)return; //上下选择切换停止请求
25                         if(ev.keyCode==13){
26                             window.open(‘https://www.baidu.com/s?wd=‘+this.t1);
27                             this.t1=‘‘;
28                         }
29                         this.$http.jsonp(‘https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su‘,{
30                             wd:this.t1
31                         },{
32                             jsonp:‘cb‘
33                         }).then(function(res){
34                             this.myData=res.data.s;
35                         },function(){
36
37                         });
38                     },
39                     changeDown:function(){
40                         this.now++;
41                         if(this.now==this.myData.length)this.now=-1;
42                         this.t1=this.myData[this.now];
43                     },
44                     changeUp:function(){
45                         this.now--;
46                         if(this.now==-2)this.now=this.myData.length-1;
47                         this.t1=this.myData[this.now];
48                     }
49                 }
50             });
51         };
52     </script>
53 </head>
54 <body>
55     <div id="box">
56         <input type="text" v-model="t1" @keyup="get($event)" @keydown.down="changeDown()" @keydown.up.prevent="changeUp()">
57         <ul>
58             <li v-for="value in myData" :class="{gray:$index==now}">
59                 {{value}}
60             </li>
61         </ul>
62         <p v-show="myData.length==0">暂无数据...</p>
63     </div>
64 </body>
65 </html>

实现效果:

原文地址:https://www.cnblogs.com/tianranhui/p/9743621.html

时间: 2024-10-06 19:37:18

Vue.js模拟百度下拉框的相关文章

模拟select下拉框之多选(数据源采用模拟Ajax数据--原创)

最近需要一个下拉多选,本来想偷懒的,所以在网上百度了一番,最终还是发现没有一个符合自己要求的,所以我自己写了一个插件.下面是GIF动态效果图展示 相信大家已经看到效果了,接下来就是我的代码展示 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>模拟select下拉框之多选</title> <style

DIV模拟的下拉框特效

CSS: <style type="text/css"> body, ul, li { margin: 0; padding: 0; font-size: 13px; } ul, li { list-style: none; } #divselect { width: 186px; margin: 80px auto; position: relative; z-index: 10000; } #divselect cite { width: 150px; height:

JS为Select下拉框增加输入功能

JavaScript使用parentNode.nextSibling.value实现的本功能,实际上你会发现网页上有两个控件元素,一个是Select,一个是input,使用CSS将input覆盖于select之上,再使用JS将下拉框的值赋值给input,实际上是用input模拟出了select的功能,思路很新颖,也不知到底有多少人需要select可输入文字的功能,下面是详细的实现代码:前端资源分享 .代码   <div style="position:relative;">

模拟一个下拉框

用sele标签写的页面总是不太好看,而且在不同的浏览器里显示的样子不同,大家都用div ul li 之类的模拟一个下拉框对其进行美化. 这里是在网上找的一个下拉框的例子,根据它修改完成的,明天试试看,能不能代替项目里的selec. 这里是GitHub地址

JS为Select下拉框添加输入功能

JavaScript使用parentNode.nextSibling.value实现的本功能,实际上你会发现网页上有两个控件元素,一个是Select,一个是input,使用CSS将input覆盖于select之上,再使用JS将下拉框的值赋值给input,实际上是用input模拟出了select的功能,思路非常新颖,也不知究竟有多少人须要select可输入文字的功能,以下是具体的实现代码:前端资源分享 .代码   <div style="position:relative;">

用div,ul,input模拟select下拉框

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title>案例测试</title> 6 <link rel="stylesheet" href="css/all.css" /> 7 <script type="text/javascript" src=&

jq+css模拟模糊搜索下拉框实现

html: @*输入框*@ <div> <input type="text" style="width: 85%; height: 34px;" onkeyup="InputChange(this)" id="txtInput"> </div> @*模拟下拉框*@ <div class="divselect" id="dpSelect">

vue的jsonp百度下拉菜单

通过vue的jsonp实现百度下拉菜单的请求,vue的版本是2.9.2 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <script src="vue.min.js"></script> 7 <scri

js,jquery获取下拉框选中的option

js获取select选中的值: var sel=document.getElementById("select1"); var index = sel.selectedIndex; // 选中索引 albumid= sel.options[index].value;//要的值 jQuery获取下拉框选中的option: $("#s option:selected").val();