JS实现很酷的EMAIL地址添加功能实例


Posted in Javascript onFebruary 28, 2015

本文实例讲述了JS实现很酷的EMAIL地址添加功能的方法。分享给大家供大家参考。具体实现方法如下:

<html>

<head>

<title>JS实现很酷的EMAIL地址添加功能</title>

<style type="text/css">

ul{ list-style:none; margin:0; padding:0;}

li{ margin:0; padding:0;}

#content{width:100%;}

#sendmail{float:left; width:60%;}

#friendlist{float:left; width:30%;}

#bxAddrFly{position:absolute;height:18px; width:46px;background:#EEE; border:1px #ccc solid;display:none;}

#tbAddrTree{ width:126px; float:left; padding:5px;border:1px #7F9DB9 solid;}

#tbAddrTree li{ width:100%; float:left;}

#tbAddrTree a{backgroud: #fff;width: 100%;color:#494949;text-decoration: none;float:left;}

#tbAddrTree a:hover{background: #e5edf6;}

</style>

<script type="text/javascript">

var ev={};

var flyDiv="bxAddrFly";

var inceptDiv="SendAddress";

var addEvent="addAddress()";

function oo(obj){return (document.getElementById) ? document.getElementById(obj): document.all[obj];}

function isNone(str){return str==null||str==""?true:false}

var Browser = new Object();

Browser.isFirefox = (navigator.userAgent.toLowerCase().indexOf("firefox")!=-1);

if (Browser.isFirefox) { extendEventObject();}

function extendEventObject() {

window.constructor.prototype.__defineGetter__("event", function(){

var o = arguments.callee.caller;

var e;

while(o != null){

e = o.arguments[0];

if(e && (e.constructor == Event || e.constructor == MouseEvent)) return e;

o = o.caller;

}

return null;

});
Event.prototype.__defineGetter__("srcElement", function () {

var node = this.target;

while (node.nodeType != 1) node = node.parentNode;

return node;

});

}

window.onload = function(){

var addrTree = oo('tbAddrTree');

addrTree.onmouseover = function(){addrTree_event(event)};

addrTree.onmouseout = function(){addrTree_event(event)};

addrTree.onclick = function(){addrTree_event(event)};

}

function addrTree_event(e){

var memberID,tr

var ee = e.srcElement; 

if(ee.tagName=="A"&&e.type=="mouseover"){ee.style.textDecoration="underline"}

if(ee.tagName=="A"&&e.type=="mouseout"){ee.style.textDecoration=""}

if(e.type=="click"&&e.srcElement.tagName=="A"){

var li=ee.parentNode.parentNode;

ev.AddInfo="\""+li.getAttribute("memberName")+"\"<\""+li.getAttribute("email")+"\">"

oo(flyDiv).innerHTML=li.getAttribute("memberName");

addrTree_add(e.clientX,e.clientY)

}

}

function addrTree_add(ex,ey){

if(oo(flyDiv).style.display=='none'||oo(flyDiv).style.display==''){oo(flyDiv).style.display='block';}

var inceptE = oo(inceptDiv);

var inceptEX = inceptE.offsetTop;   

var inceptEY = inceptE.offsetLeft;   

while(inceptE = inceptE.offsetParent){

inceptEX += inceptE.offsetTop;   

inceptEY += inceptE.offsetLeft;   

}

ev.flyArr=new Array(ex,ey,inceptEX,inceptEY,10);

fly(flyDiv,addEvent);

}
function fly(flyObj,flyRun){

var obj,a=ev.flyArr,x,y

if(flyObj!=null){

if(ev.flyObj!=null){

window.clearTimeout(ev.flyTm);

ev.flyObj.style.top=-900;

}

a[5]=0;

ev.flyObj=oo(flyObj);

ev.flyRun=flyRun;

}
obj=ev.flyObj;

if(a[4]==null){a[4]=1}

a[5]+=a[4]/Math.sqrt(Math.pow(a[2]-a[0],2)+Math.pow(a[3]-a[1],2));

if(a[5]>1){

obj.style.top=-900;

eval(ev.flyRun);

ev.flyObj=null;

return;

}
window.clearTimeout(ev.flyTm);

x=(a[2]-a[0])*a[5]+a[0];

y=(a[3]-a[1])*a[5]+a[1];

obj.style.left=x;

obj.style.top=y;

document.body.style.overflowX="hidden";

ev.flyTm=window.setTimeout("fly()",10)

}
function addAddress()

{

var key=ev.AddInfo;

if (oo(inceptDiv).value.indexOf(key)==-1)

{

oo(inceptDiv).value+=key+",";

}

}

</script>

</head>

<body>

<div id="content">

  <div id="sendmail">

    <input name="textfield" type="text" id="SendAddress" size="70">

  </div>

  <div id="friendlist">

    <div id="tbAddrTree">

      <ul>

        <li membername="张三" email="zhangsan@163.com"><nobr><a>张三</a></nobr></li>

        <li membername="李四" email="lisi@1126.com"><nobr><a>李四</a></nobr></li>

        <li membername="王五" email="wangwu@189.com"><nobr><a>王五</a></nobr></li>

      </ul>

    </div>

    <div id="bxAddrFly"> </div>

  </div>

</div>

<br />

</body>

</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
js window.event对象详尽解析
Feb 17 Javascript
javascript 跳转代码集合
Dec 03 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
Jan 09 Javascript
JavaScript将XML转成JSON的方法
Mar 12 Javascript
JavaScript中textRange对象使用方法小结
Mar 24 Javascript
超全面的JavaScript开发规范(推荐)
Jan 21 Javascript
js仿淘宝评价评分功能
Feb 28 Javascript
vue.js实现备忘录功能的方法
Jul 10 Javascript
Vue cli构建及项目打包以及出现的问题解决
Aug 27 Javascript
[原创]微信小程序获取网络类型的方法示例
Mar 01 Javascript
模块化react-router配置方法详解
Jun 03 Javascript
JQuery实现折叠式菜单的详细代码
Jun 03 jQuery
浅谈JavaScript数据类型及转换
Feb 28 #Javascript
javaScript基础语法介绍
Feb 28 #Javascript
jQuery实现的输入框选择时间插件用法实例
Feb 28 #Javascript
jQuery对象和DOM对象之间相互转换的方法介绍
Feb 28 #Javascript
JavaScript生成随机数的4种自定义函数分享
Feb 28 #Javascript
浅析JavaScript事件和方法
Feb 28 #Javascript
常用的JavaScript WEB操作方法分享
Feb 28 #Javascript
You might like
解决GD中文乱码问题
2007/02/14 PHP
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
jQuery 性能优化指南(3)
2009/05/21 Javascript
JavaScript 的方法重载效果
2009/08/07 Javascript
jQuery入门问答 整理的几个常见的初学者问题
2010/02/22 Javascript
JavaScript 滚轮事件使用说明
2010/03/07 Javascript
js中if语句的几种优化代码写法
2011/03/12 Javascript
jquery库文件略庞大用纯js替换jquery的方法
2014/08/12 Javascript
JavaScript里四舍五入函数round用法实例
2015/04/06 Javascript
js面向对象实现canvas制作彩虹球喷枪效果
2016/09/24 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
2017/02/27 Javascript
jQuery中的deferred使用方法
2017/03/27 jQuery
浅谈React和Redux的连接react-redux
2017/12/04 Javascript
解决Vue打包之后文件路径出错的问题
2018/03/06 Javascript
vue设置默认首页的操作
2020/08/12 Javascript
vue的$http的get请求要加上params操作
2020/11/12 Javascript
Python入门篇之文件
2014/10/20 Python
Linux 下 Python 实现按任意键退出的实现方法
2016/09/25 Python
解决python升级引起的pip执行错误的问题
2018/06/12 Python
django认证系统实现自定义权限管理的方法
2018/07/16 Python
django一对多模型以及如何在前端实现详解
2019/07/24 Python
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
美国电力供应商店/电气批发商:USESI
2018/10/12 全球购物
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
母亲追悼会答谢词
2014/01/27 职场文书
春节联欢晚会主持词范文
2014/03/24 职场文书
毕业设计说明书
2014/05/07 职场文书
运动会加油口号
2014/06/07 职场文书
法制宣传标语集锦
2014/06/25 职场文书
供用电专业求职信
2014/07/07 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
员工离职证明范本
2015/06/12 职场文书
小学运动会通讯稿
2015/07/18 职场文书
联村联户简报
2015/07/21 职场文书
廉洁自律心得体会2016
2016/01/13 职场文书
《圆的周长》教学反思
2016/02/17 职场文书