老师,为啥您把m_panel.style.width=to_x+10+"px";?其中to_x不是控制元素相对于页面左边的距离吗?而m_panel.style.width不是面板的宽度吗?这两个元素相等呢?不是很理解,希望老师回答下我的问题,谢谢了
冉四夕
2014-09-21
2 回答
实际上 to_x 不是控制元素相对页面左边的距离。因为控制元素是相对于Panel 定位的。
to_x = 0 的情况下,控制元素贴紧Panel的左边。
to_x = 100 的情况下,控制元素在Panel的左边+100px处。
>>> 因为 to_x = 鼠标当前位置 - m_start_x 所以关键点在于 m_start_x 的计算
m_start_x = e.pageX - ctrl.offsetLeft;
而 ctrl.offsetLeft 是相对于 Panel 的偏移距离。
>>> 如果 panel的宽度为 400 假设两种情况:
情况A:panel.style.left = '0px' 也就是默认的情况
情况B:panel.style.left = '500px'
不管哪种情况,第一次按下去的时候, m_start_x 一定是等于 400
ps:因为控制元素本身有10个宽度,所以精确的说 m_start_x 一定是等于 390。
举报
0/150
提交
取消