JS实现的邮箱提示补全效果示例


Posted in Javascript onJanuary 30, 2018

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

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

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

效果图如下:

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 = '<div 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>'+
            '  </div>';
      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>
Javascript 相关文章推荐
基于json的jquery地区联动效果代码
Jul 06 Javascript
使用Javascript接收get传递的值的代码
Nov 30 Javascript
jQuery之自动完成组件的深入解析
Jun 19 Javascript
JavaScript中的类与实例实现方法
Jan 23 Javascript
JavaScript页面模板库handlebars的简单用法
Mar 02 Javascript
javascript实现行拖动的方法
May 27 Javascript
jQuery自动添加表单项的方法
Jul 13 Javascript
jQuery实现二级下拉菜单效果
Jan 05 Javascript
在JavaScript中模拟类(class)及类的继承关系
May 20 Javascript
详解Angular的双向数据绑定(MV-VM)
Dec 26 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
Sep 25 Javascript
在Create React App中启用Sass和Less的方法示例
Jan 16 Javascript
JS实现的抛物线运动效果示例
Jan 30 #Javascript
express如何使用session与cookie的方法
Jan 30 #Javascript
JavaScript实现的贝塞尔曲线算法简单示例
Jan 30 #Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
Jan 30 #Javascript
AngularJS双向数据绑定原理之$watch、$apply和$digest的应用
Jan 30 #Javascript
微信小程序数据存储与取值详解
Jan 30 #Javascript
Vue精简版风格概述
Jan 30 #Javascript
You might like
ThinkPHP函数详解之M方法和R方法
2015/09/10 PHP
php实现通过soap调用.Net的WebService asmx文件
2017/02/27 PHP
JavaScript异步调用定时方法并停止该方法实现代码
2012/03/16 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
jQuery 隐藏和显示 input 默认值示例
2014/06/03 Javascript
jQuery常用操作方法及常用函数总结
2014/06/19 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
2014/10/17 Javascript
详解JavaScript中的异常处理方法
2015/06/16 Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
2020/03/30 Javascript
使用JQuery实现Ctrl+Enter提交表单的方法
2015/10/22 Javascript
JS实现选项卡实例详解
2015/11/17 Javascript
JS组件Form表单验证神器BootstrapValidator
2016/01/26 Javascript
JS设置cookie、读取cookie
2016/02/24 Javascript
location.hash保存页面状态的技巧
2016/04/28 Javascript
鼠标经过出现气泡框的简单实例
2017/03/17 Javascript
AngularJs 常用的过滤器
2017/05/15 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
小程序云开发实战小结
2018/10/25 Javascript
js实现拖动缓动效果
2020/01/13 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
2020/03/06 Javascript
Vue项目中使用mock.js的完整步骤
2021/01/12 Vue.js
[18:16]sakonoko 2017年卡尔集锦
2018/02/06 DOTA
python计算最小优先级队列代码分享
2013/12/18 Python
python的绘图工具matplotlib使用实例
2014/07/03 Python
python实现多线程采集的2个代码例子
2014/07/07 Python
ubuntu安装mysql pycharm sublime
2018/02/20 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
css3实现3D色子翻转特效
2014/12/23 HTML / CSS
使用canvas来完成线性渐变和径向渐变的功能的方法示例
2019/07/25 HTML / CSS
JD Sports丹麦:英国领先的运动时尚零售商
2020/11/24 全球购物
Agoda中文官网:安可达(低价预订全球酒店)
2021/01/18 全球购物
如何理解transaction事务的概念
2015/05/27 面试题
《晚上的太阳》教学反思
2014/04/23 职场文书
党员教师四风问题对照检查材料
2014/09/26 职场文书
2014年学校安全工作总结
2014/11/13 职场文书
幼师小班个人总结
2015/02/12 职场文书