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 相关文章推荐
javascript  Error 对象 错误处理
May 18 Javascript
JavaScript 脚本将当地时间转换成其它时区
Mar 19 Javascript
this和执行上下文实现代码
Jul 01 Javascript
Javascript 页面模板化很多人没有使用过的方法
Jun 05 Javascript
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
Dec 11 Javascript
Jquery submit()无法提交问题
Apr 21 Javascript
javascript禁用Tab键脚本实例
Nov 22 Javascript
js AppendChild与insertBefore用法详细对比
Dec 16 Javascript
JavaScript基础篇(6)之函数表达式闭包
Dec 11 Javascript
js获取当前页的URL与window.location.href简单方法
Feb 13 Javascript
bootstrap表单示例代码分享
May 18 Javascript
vue实现无缝轮播效果(跑马灯)
May 14 Vue.js
浅谈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
漫荒推荐:画风超赞的国风漫画推荐 超长假期不无聊
2020/03/08 国漫
php教程 插件机制在PHP中实现方案
2012/11/02 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
js返回上一页并刷新代码整理
2012/12/21 Javascript
Js中的onblur和onfocus事件应用介绍
2013/08/27 Javascript
JS简单实现登陆验证附效果图
2013/11/19 Javascript
封装好的js判断操作系统与浏览器代码分享
2015/01/09 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
2016/09/04 Javascript
jQuery插件fullPage.js实现全屏滚动效果
2016/12/02 Javascript
jquery将标签元素的高设为屏幕的百分比
2017/04/19 jQuery
30分钟精通React今年最劲爆的新特性——React Hooks
2019/03/11 Javascript
js回调函数仿360开机
2019/12/26 Javascript
jquery传参及获取方式(两种方式)
2020/02/13 jQuery
vue之封装多个组件调用同一接口的案例
2020/08/11 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
[01:15:45]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第一局
2016/02/26 DOTA
python获取本地计算机名字的方法
2015/04/29 Python
Python中表达式x += y和x = x+y 的区别详解
2017/06/20 Python
Python爬虫框架Scrapy常用命令总结
2018/07/26 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
2020/01/04 Python
Python爬虫基于lxml解决数据编码乱码问题
2020/07/31 Python
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
HTML5学习笔记之History API
2015/02/26 HTML / CSS
HTML5 video标签(播放器)学习笔记(一):使用入门
2015/04/24 HTML / CSS
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
一些网络技术方面的面试题
2014/05/01 面试题
办公室经理岗位职责
2014/01/01 职场文书
元旦晚会邀请函
2014/01/27 职场文书
工作表现自我评价
2014/02/08 职场文书
国旗下的演讲稿
2014/05/08 职场文书
2014年人事科工作总结
2014/11/19 职场文书
2014年高一班主任工作总结
2014/12/05 职场文书
2015年幼儿园元旦游艺活动策划书
2014/12/09 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
情况说明书格式及范文
2019/06/24 职场文书