知道原因了。。。。
clientX是鼠标光标的坐标
offsetWidth是元素的宽度
是你容器没有处理好
问题已解决,主要原因在于不同类型值的计算后导致disX值为NaN。
使用parseInt()方法把px类型转换成数值类型,可以修成错误。
可以啊。俩个都一样,一个是匿名函数,一个是有名函数。触发这个是事件记得传event给这个函数就行了。
disX = event.clientX - oDrag.offsetLeft, 这一句应该以分号结尾,不是逗号。
getByClass这个方法出错了,在遍历那里,if(elements[i].className==clsName)这里的clsName不对,应该改为if(elements[i].className==class),因为你一开始设置的参数就是class
为了使代码更加简洁,可以一次性声明多个同种类型的变量,例如:var a,b,c; 注意中间使用“,”隔开。
老师只是在每个变量之后敲了个回车,这样看起来就很像漏了个var
获取标签名的时候,input是不是应该用""括起来啊?
input是不是要加引号
使用getELementsByTagName()方法,标签名需要在引号中
你的函数没有执行啊
没问题
嗯,我觉得你应该先弄明白什么是回调函数,element.onclick事件触发的时候,他的回调函数是这种形式的function(event){};虽然JS没有限定参数的长度,也就是说,这个回调函数的形式也是这样的function(event,undefined,undefined........){};所以上面这样子改的话,控制台就会提示你disX没有定义,从而停止这个函数的执行,也就移动不了了。
回调函数是传递参数是没有意义的。所以这时候disX,disY没什么用。
你说的是哪个方法啊?可能为了再演示一遍吧
她这么做是为了防止点击别的选项对这个classname造成污染,跟开启计时器前要先清一样
这个和变量有点像。
比如平时都这样写:var num=3;
但它也可写为:
var num; num=3;
因为X是在框的右上方 右边当然可以让width-10 但是你上方就不能让height-10了 你平行的offsetwidth-10 等于正好把屏幕往左边缩小了10 但是你offsetheight-10是把屏幕从下往上拉了10px 那个X如果在右下方就完全没问题 但是在右上方就出现bug了 不知道解释清楚了没 不懂再问吧
没有按下去哪里的的释放之说呢?也就说释放是建立在按钮已经按下的前提下,所以要放在按下的里面
又或者parent那里不要加单双引号
var oParent = parent ? document.getElementById(parent) : document
用addEventListener(或attachEvent)添加的事件,必须用removeEventListener(或detachEvent)移除
好的,谢谢你
你可以再写一个块替换面板,点击事件加一个display:block;和display:none;不就行了?
disx和disy是光标按下时与面板左边缘和上边缘的距离,调用fnMove函数时作为实参传进函数里。
posx和posy是声明fnMove函数时,定义的形参,用来接收传进来的数据。
可以这么理解:posx和posy是新定义的2个变量(名字可以随意起的,和disx、disy相同也行),把disx和disy赋值给posx和posy(等同于这样2句代码:var posx=disx;var posy=disy;)
可以chrom按F12查看错误信息哦~~!
后面有讲.
document.onmousemove=fnMove(event,disX,disY);
这么写就是直接调用fnMove这个函数,直接调用的时候,event并不承载在任何事件之上,因此无法正确获取值