1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > inputSuggest文本框输入时提示 自动完成效果(邮箱输入自动补全插件)【javascript】

inputSuggest文本框输入时提示 自动完成效果(邮箱输入自动补全插件)【javascript】

时间:2020-07-20 11:42:36

相关推荐

inputSuggest文本框输入时提示 自动完成效果(邮箱输入自动补全插件)【javascript】

web前端|js教程

邮箱输入,自动补全

web前端-js教程

像QQ邮箱提示、百度的搜索框提示、淘宝的商品搜索提示等,现在有不少的网站都有类似效果,以提升用户体验。

使用方法:

new InputSuggest({

input HTMLInputElement 必选

data Array [‘’,’’,’’,’’] 必选

containerCls 容器className

itemCls 容器子项className

activeCls 高亮子项className

width 宽度设置 此项将覆盖containerCls的width

opacity 透明度设置 此项将覆盖containerCls的opacity……

在线演示:/js//inputSuggest/

完整源码下载:/jiaoben/44737.html

简单的winform登陆验证源码,vscode写sass,ubuntu gccc,tomcat日志定位,qt5中sqlite,大漠插件 文本操作,支持IE11的前端框架,广州爬虫展会门票,php 调用非静态方法,辽宁seo快速优化,php分享网站模板下载不了,网页flv播放器插件,.net三层架构模板lzw

inputSuggest输入字符时提示

彩虹秒赞美化源码,ubuntu左边栏不见,天猫销量爬虫,php输入代码直接显示出来了,学seo入门lzw

body{margin:0;padding:0;} input{width:200px;} .suggest-container{border:1px solid #C1C1C1;visibility:hidden;} .suggest-item{padding:3px 2px;} .suggest-active {background:#33CCFF;color:white;padding:3px 2px;}

function InputSuggest(opt){ this.win = null; this.doc = null; this.container = null; this.items = null; this.input = opt.input || null; this.containerCls = opt.containerCls || ‘suggest-container’; this.itemCls = opt.itemCls || ‘suggest-item’; this.activeCls = opt.activeCls || ‘suggest-active’; this.width = opt.width; this.opacity = opt.opacity; this.data = opt.data || []; this.active = null; this.visible = false; this.init(); } InputSuggest.prototype = { init: function(){ this.win = window; this.doc = window.document; this.container = this.$C(‘div’); this.attr(this.container, ‘class’, this.containerCls); this.doc.body.appendChild(this.container); this.setPos(); var _this = this, input = this.input; this.on(input,’keyup’,function(e){ if(input.value==”){ _this.hide(); }else{ _this.onKeyup(e); } }); // blur会在click前发生,这里使用mousedown this.on(input,’blur’,function(e){ _this.hide(); }); this.onMouseover(); this.onMousedown(); }, $C: function(tag){ return this.doc.createElement(tag); }, getPos: function (el){ var pos=[0,0], a=el; if(el.getBoundingClientRect){ var box = el.getBoundingClientRect(); pos=[box.left,box.top]; }else{ while(a && a.offsetParent){ pos[0] += a.offsetLeft; pos[1] += a.offsetTop; a = a.offsetParent } } return pos; }, setPos: function(){ var input = this.input, pos = this.getPos(input), brow = this.brow, width = this.width, opacity = this.opacity, container = this.container; container.style.cssText = ‘position:absolute;overflow:hidden;left:’ + pos[0] + ‘px;top:’ + (pos[1]+input.offsetHeight) + ‘px;width:’ // IE6/7/8/9/Chrome/Safari input[type=text] border默认为2,Firefox为1,因此取offsetWidth-2保证与FF一致 + (brow.firefox ? input.clientWidth : input.offsetWidth-2) + ‘px;’; if(width){ container.style.width = width + ‘px’; } if(opacity){ if(this.brow.ie){ container.style.filter = ‘Alpha(Opacity=’ + opacity * 100 + ‘);’; }else{ container.style.opacity = (opacity == 1 ? ” : ” + opacity); } } }, show: function(){ this.container.style.visibility = ‘visible’; this.visible = true; }, hide: function(){ this.container.style.visibility = ‘hidden’; this.visible = false; }, attr: function(el, name, val){ if(val === undefined){ return el.getAttribute(name); }else{ el.setAttribute(name,val); name==’class’ && (el.className = val); } }, on: function(el, type, fn){ el.addEventListener ? el.addEventListener(type, fn, false) : el.attachEvent(‘on’ + type, fn); }, un: function(el, type, fn){ el.removeEventListener ? el.removeEventListener(type, fn, false) : el.detachEvent(‘on’ + type, fn); }, brow: function(ua){ return { ie: /msie/.test(ua) && !/opera/.test(ua), opera: /opera/.test(ua), firefox: /firefox/.test(ua) }; }(navigator.userAgent.toLowerCase()), onKeyup: function(e){ var container = this.container, input = this.input, iCls = this.itemCls, aCls = this.activeCls; if(this.visible){ switch(e.keyCode){ case 13: // Enter if(this.active){ input.value = this.active.firstChild.data; this.hide(); } return; case 38: // 方向键上 if(this.active==null){ this.active = container.lastChild; this.attr(this.active, ‘class’, aCls); input.value = this.active.firstChild.data; }else{ if(this.active.previousSibling!=null){ this.attr(this.active, ‘class’, iCls); this.active = this.active.previousSibling; this.attr(this.active, ‘class’, aCls); input.value = this.active.firstChild.data; }else{ this.attr(this.active, ‘class’, iCls); this.active = null; input.focus(); input.value = input.getAttribute(“curr_val”); } } return; case 40: // 方向键下 if(this.active==null){ this.active = container.firstChild; this.attr(this.active, ‘class’, aCls); input.value = this.active.firstChild.data; }else{ if(this.active.nextSibling!=null){ this.attr(this.active, ‘class’, iCls); this.active = this.active.nextSibling; this.attr(this.active, ‘class’, aCls); input.value = this.active.firstChild.data; }else{ this.attr(this.active, ‘class’, iCls); this.active = null; input.focus(); input.value = input.getAttribute(“curr_val”); } } return; } // 烈火網 liehuo.net 欢迎复制,拒绝恶意采集 veryhuo.COm } if(e.keyCode==27){ // ESC键 this.hide(); input.value = this.attr(input,’curr_val’); return; } if(input.value.indexOf(‘@’)!=-1){return;} this.items = []; if(this.attr(input,’curr_val’)!=input.value){ this.container.innerHTML = ”; for(var i=0,len=this.data.length;i<len;i++){ var item = this.$C(div); this.attr(item, class, this.itemCls); item.innerHTML = input.value + @ + this.data[i]; this.items[i] = item; this.container.appendChild(item); } this.attr(input,curr_val,input.value); } this.show(); }, onMouseover: function(){ var _this = this, icls = this.itemCls, acls = this.activeCls; this.on(this.container,mouseover,function(e){ var target = e.target || e.srcElement; if(target.className == icls){ if(_this.active){ _this.active.className = icls; } target.className = acls; _this.active = target; } }); }, onMousedown: function(){ var _this = this; this.on(this.container,mousedown,function(e){ var target = e.target || e.srcElement; _this.input.value = target.innerHTML; _this.hide(); }); } }

window.onload = function(){ var sinaSuggest = new InputSuggest({ input: document.getElementById(‘sina’), data: [‘’,’’,’’,’’,’’] }); var sohuSuggest = new InputSuggest({ width: 300, opacity: 0.3, input: document.getElementById(‘sohu’), data: [‘’,’’,’’,’’,’’,’’,’’] }); }

webapp查询界面源码,mac vscode新建文件,ubuntu.seed,查看tomcat连接日志,xpath爬虫解析,php 截取中间的字符串,浙江免费seo网络推广靠谱,用asp做的一个网站实例源代码lzw

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。