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

老师,为啥您把m_panel.style.width=to_x+10+"px";?其中to_x不是控制元素相对于页面左边的距离吗?而m_panel.style.width不是面板的宽度吗?这两个元素相等呢?不是很理解,希望老师回答下我的问题,谢谢了

正在回答

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。

2 回复 有任何疑惑可以回复我~
#1

冉四夕 提问者

老师,我终于明白了,谢谢了,控制元素相对于panel定位,而是不是整个window定位的。
2014-09-23 回复 有任何疑惑可以回复我~

老师,我终于明白了,谢谢了,控制元素相对于panel定位,而是不是整个window定位的。

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

举报

0/150
提交
取消
可调大小面板实现(Resizeable Panel)
  • 参与学习       13047    人
  • 解答问题       48    个

前端UI组件仓库必备,先从分析实现原理到步骤分解,走完全过程

进入课程
意见反馈 帮助中心 APP下载
官方微信