<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
*{margin:0;padding:0;}
.head{font-size:12px;padding:6px 0 0 10px;}
#login_box{width:300px;height:150px;background:#eee;
border:1px solid #ccc;position:absolute;left:50%;top:50%;margin-left:-150px;margin-top:-75px;display:none;}
#login_box p{height:20px;border-bottom:1px solid #ccc;font-size:12px;padding:6px 0 0 5px;font-weight:bold;}
#close{width:14px;height:14px;background:url(close.png) no-repeat;position:absolute;right:4px;top:6px;}
</style>
<script>
window.onload=function(){
var login_btn=document.getElementById('login'),
login_box=document.getElementById('login_box'),
close=document.getElementById('close');
// 封装添加事件监听程序
function addEvent(ele,type,hander){
// 执行代码
if(ele.addEventListener){
ele.addEventListener(type,hander);
}else if(ele.attach){
ele.attach("on"+type,hander)
}else{
ele["on"+type]=hander;
}
}
// 显示登录层函数
function showLogin(){
login_box.style.display="block";// 执行代码
}
// 隐藏登录层函数
function hideLogin(){
login_box.style.display="none"; // 执行代码
}
addEvent(login_btn,"click",showLogin);//点击登录按钮显示登录层
// 执行代码
addEvent(login_btn,"click",hideLogin);//点击关闭按钮隐藏登录层
// 执行代码
}
</script>
</head>
<body>
<div>亲,您好!<input type="button" value="登 录" id="login" onclick="showLogin()"></div>
<div id="login_box">
<p>用户登录</p><span id="close"></span>
</div>
</body>
</html>
3 回答
蛋加树
TA贡献29条经验 获得超13个赞
一: window.onload=function()这个匿名函数的结束符号在最后,也就是说showLogin函数是个局部的函数,执行完就没了。应该把后续需要执行的函数写在匿名函数的后面。
二:你想实现登录框隐藏和显示交替作用的效果,就不该指定login的onclick事件为showLogin(),而应该是addEvent函数。目测你这种写法还是做不到你要的效果。
使用jQuery的一些简单方法可以实现你要的效果,具体的可以到w3school网上看jQuery部分。
添加回答
举报
0/150
提交
取消