为了账号安全,请及时绑定邮箱和手机立即绑定

求帮忙看下,为什么没有拖拽效果

// JavaScript Document

//封装一个调用类名的方法,以适用于所有浏览器

function getByClass(class,patent){//class是必须的,parent不是必须的

var pare=parent?document.getElementById(parent):document,//判断是否有父元素

eles=[],//有相同className的元素的集合

elements=pare.getElemetsByTagName('*');//所有取出的父元素下的元素

//遍历

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 title=getByClass('login_logo_webqq','loginPanel')[0];//取标题区

title.onmousedown=fnDown; //onmousedown:在用户按下任何鼠标按钮时触发

}

// 事件

function fnDown(event){

document.onmousemove=function(event){//mousemove:当鼠标指针在元素内部移动是重复的触发

event=event||window.event;

//定义登录面板

var drag=document.getElementById('loginPanel');

//光标按下的位置与面板左上角之间的距离

disX=event.clientX-drag.offsetLeft;

disY=event.clientY-drag.offsetTop;

//移动

document.onmousemove=function(event){

event=event||window.event;

fnMove(event,disX,disY);

}

//鼠标移动时的临时坐标

function fnMove(e,mX,mY){

//获取面板元素

var drag=document.getElementById('loginPanel');

//面板移动的水平距离

var X=clientX-mX,

//移动的垂直距离

Y=clientY-mY;

//将面板移动到移动后的面板坐标

drag.style.left=X+'px';

drag.atyle.top=Y+'px';

}


}


}


正在回答

2 回答

 getByClass这个方法出错了,在遍历那里,if(elements[i].className==clsName)这里的clsName不对,应该改为if(elements[i].className==class),因为你一开始设置的参数就是class

0 回复 有任何疑惑可以回复我~

window.onload错了,你好好想想

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求帮忙看下,为什么没有拖拽效果

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号