有幾個BUG,請幫我看看,蟹蟹。http://idcbgp.cn/video/2219
function?getclsname(clsname,parent){
var?oParent=parent?document.getElementById(parent):document,
eles=[],
elements=oParent.getElementsByTagName("*");
for?(var?i=0,l=elements.length;i<l;i++)?{
if(elements[i].className==clsname){
eles.push(elements[i]);
}
}
return?eles;
}
window.onload=drag;
function?drag(){
var?otitle=getclsname("login_logo_webqq","loginPanel")[0],
????oclose=document.getElementById("ui_boxyClose"),
????odiv=document.getElementById("loginPanel"),
????online=document.getElementById("loginState"),
????loginStatePanel=document.getElementById("loginStatePanel"),
????lis=loginStatePanel.getElementsByTagName("li"),
????loginStateShow=document.getElementById("loginStateShow","loginState")[0],
????loginstatetxt=getclsname("login-state-txt");
????
otitle.onmousedown=fnDown;
oclose.onmousedown=function(){
odiv.style.display="none";
}
online.onclick=function(event){
event=event||window.event;
if(event.stopPropagation){event.stopPropagation();}else{event.cancelBubble=true;}
loginStatePanel.style.display="block";
}
for(var?i=0,l=lis.length;i<l;i++){
lis[i].onmousemove=function(){
this.style.backgroundColor="#567";
}
lis[i].onmouseout=function(){
this.style.backgroundColor="white";
}
lis[i].onclick=function(event){
event=event||window.event;
if(event.stopPropagation){
event.stopPropagation();
}else{event.cancelBubble=true;}
var?id=this.id;//divs=this.getElementsByTagName("div"),
loginStatePanel.style.display="none";
loginstatetxt.innerHTML=this.childNodes[1].innerHTML;
loginStateShow.className='';
???????? loginStateShow.className='login-state-show?'+id;
}
}
document.onclick=function(){
loginStatePanel.style.display="none";
}
}
function?fnDown(evnet){
event=event||window.event;
var?odiv=document.getElementById("loginPanel");
var?disx=event.clientX-odiv.offsetLeft,
disy=event.clientY-odiv.offsetTop;
document.onmousemove=function(event){
event=event||window.event;
var?x=event.clientX-disx,
y=event.clientY-disy,
outx=document.clientWidth-odiv.offsetWidth-5,
? outy=document.clientHeight-odiv.offsetHeight-5;
if(x<5){x=5;}
else?if(x>outx){x=outx;}
if(y<5){y=5;}
else?if(y>outy){y=outy;}
odiv.style.left=x+'px';
odiv.style.top=y+'px';
}
document.onmouseup=function(){
document.onmousemove=null;
document.onmouseup=null;
}
}注:HTML和CSS均用的是老師提供的,未修改。
一共四個BUG,三個有圖,第四個是點擊狀態(tài)LI,狀態(tài)欄內(nèi)容不變。



2016-06-29
還有一種檢查方式就是在瀏覽器預(yù)覽時,打開開發(fā)者工具面板,會報錯
2016-06-29
loginStateShow.className='login-state-show?'+id;,你這句看看index.html中下劃線是'_'還是'-';還有?loginstatetxt=getclsname("login-state-txt");這句,我也不是很懂,但是好像應(yīng)該取id,而不是classname
2016-06-29
outx=document.documentElement.clientWidth-odiv.offsetWidth-5,
outy=document.documentElement.clientHeight-odiv.offsetHeight-5;
74 75行換成上面試試,貌似少了個documentElement。