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

 更新时间:2015年02月28日 09:43:05   作者:代码家园  
这篇文章主要介绍了JS实现很酷的EMAIL地址添加功能,实例分析了javascript操作text文本的技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

相关文章

  • js判断手机访问或者PC的几个例子(常用于手机跳转)

    js判断手机访问或者PC的几个例子(常用于手机跳转)

    js判断手机或者PC的例子我们在几乎所有网站都会有这段代码了,现在手机流量与pc差不多了,下面来看两段js判断手机或者PC例子吧
    2015-12-12
  • JS+Canvas实现上传图片截图功能

    JS+Canvas实现上传图片截图功能

    在我们平时开发图片上传时,有时需要实现图片的裁剪功能,这篇文章主要为大家介绍了如何使用Canvas实现上传图片截图功能,希望对大家有所帮助
    2023-10-10
  • js中window.location.href的用法大全

    js中window.location.href的用法大全

    window.location.href是前端开发中一个非常重要且常用的属性,它为我们提供了获取和操作页面URL的便捷手段,本文主要介绍了js中window.location.href的用法大全,感兴趣的可以
    2023-12-12
  • js实现微信分享代码

    js实现微信分享代码

    这篇文章主要介绍了js实现微信分享朋友链接显示,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • 关于ES6中的箭头函数超详细梳理

    关于ES6中的箭头函数超详细梳理

    箭头函数可以说是es6的一大亮点,使用箭头函数,可以简化编码过程,是代码更加的简洁,下面这篇文章主要给大家介绍了关于ES6中箭头函数的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • js根据后缀判断文件文件类型的代码

    js根据后缀判断文件文件类型的代码

    这篇文章主要介绍了js根据后缀判断文件文件类型的代码,原来是获取文件的扩展名然后再判断属于什么类型,对于图片多个后缀的判断的实现也不是不错的思路,大家可以参考一下
    2020-05-05
  • syntaxhighlighter 使用方法

    syntaxhighlighter 使用方法

    syntaxhighlighter 使用方法...
    2007-07-07
  • JS中传递参数的几种不同方法比较

    JS中传递参数的几种不同方法比较

    本篇文章主要介绍了JS中传递参数的几种不同方法。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • 解决layui表格的表头不滚动的问题

    解决layui表格的表头不滚动的问题

    今天小编就为大家分享一篇解决layui表格的表头不滚动的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • 重写JS setTimeout 方法 JavaScript Hook 劫持setTimeout

    重写JS setTimeout 方法 JavaScript Hook 

    想要重写  setTimeout  方法,发现有动态引入的js,需要改成自己的js,以下教教大家这个需求,防止网站被劫持
    2023-07-07

最新评论