来源:-

冉四夕

2014-09-21 14:52

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

写回答 关注

2回答

  • Lyn_Tech
    2014-09-23 15:17:17
    已采纳

    实际上 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。

    冉四夕

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

    2014-09-23 20:07:01

    共 1 条回复 >

  • 冉四夕
    2014-09-23 20:06:35

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

可调大小面板实现(Resizeable Panel)

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

13046 学习 · 48 问题

查看课程

相似问题