最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

在JS中如何实现邮箱提示补全功能

来源:懂视网 责编:小采 时间:2020-11-27 19:39:16
文档

在JS中如何实现邮箱提示补全功能

在JS中如何实现邮箱提示补全功能:这篇文章主要介绍了JS实现的邮箱提示补全效果,涉及javascript正则匹配、事件响应及页面元素动态操作相关技巧,需要的朋友可以参考下本文实例讲述了JS实现的邮箱提示补全效果。分享给大家供大家参考,具体如下:现在要实现的是类似网易登录时的邮箱提示框的效果
推荐度:
导读在JS中如何实现邮箱提示补全功能:这篇文章主要介绍了JS实现的邮箱提示补全效果,涉及javascript正则匹配、事件响应及页面元素动态操作相关技巧,需要的朋友可以参考下本文实例讲述了JS实现的邮箱提示补全效果。分享给大家供大家参考,具体如下:现在要实现的是类似网易登录时的邮箱提示框的效果
这篇文章主要介绍了JS实现的邮箱提示补全效果,涉及javascript正则匹配、事件响应及页面元素动态操作相关技巧,需要的朋友可以参考下

本文实例讲述了JS实现的邮箱提示补全效果。分享给大家供大家参考,具体如下:

现在要实现的是类似网易登录时的邮箱提示框的效果,不过这里我打算稍微改变一下,就是在输入@的时候再出现邮箱提示列表

实现提示的原理是采用正则进行匹配

效果图如下:

代码如下:

<!doctype html>
<html>
<head>
 <meta charset="utf-8" />
 <title>邮箱补全提示</title>
 <style>
 ul{padding:0px;margin:0px;}
 .login_autoComplete{width:256px;border:1px solid #4190db;position:absolute;background-color:#ffffff;z-index:99;top:109px;left:40px;display:none}
 .login_auto_ul em{font-style:normal}
 .login_auto_ul li.login_auto_title{font-weight:normal;line-height:30px;}
 .login_auto_ul li{line-height:22px;text-indent:5px;font-family:"Arial";cursor:pointer;font-weight:bold;color:#333}
 .login_auto_ul li.hover,.login_auto_ul li.curr{color:#ffffff;background-color:#6eb6fe}
 </style>
 <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
 <script>
 window.email_auto = function(selector){
 var elt = $(selector);
 var strHtml = '<p class="login_autoComplete" id="login_autoComplete">'+
 ' <ul class="login_auto_ul">'+
 ' <li class="login_auto_title">请选择邮箱后缀</li>'+
 ' <li class="hover" hz="@qq.com"></li>'+
 ' <li hz="@163.com"></li>'+
 ' <li hz="@126.com"></li>'+
 ' <li hz="@yahoo.com"></li>'+
 ' <li hz="@sina.com"></li>'+
 ' <li hz="@21cn.com"></li>'+
 ' </ul>'+
 ' </p>';
 var lc = "#login_autoComplete";
 var autoComplete,autoLi;
 if($(lc).length==0){
 $("body").append(strHtml);
 $(lc).data("elt",elt);
 autoComplete = $("#login_autoComplete");
 autoLi = autoComplete.find("li:not(.login_auto_title)");
 autoLi.mouseover(function(){
 $(this).siblings().filter(".hover").removeClass("hover");
 $(this).addClass("hover");
 }).mouseout(function(){
 $(this).removeClass("hover");
 }).mousedown(function(){
 $(lc).data("elt").val($(this).text()).change();
 $(this).parent().parent().hide();
 });
 }else{
 $(lc).data("elt",elt);
 autoComplete = $("#login_autoComplete");
 autoLi = autoComplete.find("li:not(.login_auto_title)");
 }
 $(lc).css("width",elt.outerWidth()-1);
 //用户名补全+翻动
 elt.keyup(function(e){
 if(/13|38|40|116/.test(e.keyCode) || this.value==''){
 return false;
 }
 var username = this.value;
 if(username.indexOf("@")==-1){
 autoComplete.hide();
 return false;
 }
 autoLi.each(function(){
 this.innerHTML = username.replace(/\@+.*/,"")+$(this).attr("hz");
 if(this.innerHTML.indexOf(username)>=0){
 $(this).show();
 }else{
 $(this).hide();
 }
 }).filter(".hover").removeClass("hover");
 autoComplete.show().css({
 left : $(this).offset().left,
 top : $(this).offset().top + $(this).outerHeight(true) - 1
 });
 if(autoLi.filter(":visible").length==0){
 autoComplete.hide();
 }else{
 autoLi.filter(":visible").eq(0).addClass("hover");
 }
 }).change(function(){
 $("#login_autoComplete").hide();
 }).keydown(function(e){
 if(e.keyCode==38){ //上
 autoLi.filter(".hover").prev().not(".login_auto_title").addClass("hover").next().removeClass("hover");
 }else if(e.keyCode==40){ //下
 autoLi.filter(".hover").next().addClass("hover").prev().removeClass("hover");
 }else if(e.keyCode==13){ //Enter
 autoLi.filter(".hover").mousedown();
 }
 }).focus(function(){
 $("#login_autoComplete").data("elt",$(this));
 });
 }
 $(function(){
 email_auto("#xxx");
 });
 </script>
</head>
<body>
脚本之家测试:邮箱补全提示<br/>
<input type="text" id="xxx" style="width:300px"/>
</body>
</html>

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

如何解决vue打包后静态资源图片失效的问题

在Vue中设置背景图片

使用vue + less如何实现简单换肤功能

文档

在JS中如何实现邮箱提示补全功能

在JS中如何实现邮箱提示补全功能:这篇文章主要介绍了JS实现的邮箱提示补全效果,涉及javascript正则匹配、事件响应及页面元素动态操作相关技巧,需要的朋友可以参考下本文实例讲述了JS实现的邮箱提示补全效果。分享给大家供大家参考,具体如下:现在要实现的是类似网易登录时的邮箱提示框的效果
推荐度:
标签: 邮箱 提示 实现
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top