1

我正在开发一个页面,该页面具有可调整大小和可拖动的 div,并且我已将mousedown,mousemovemouseup事件处理程序附加到该 div。

问题出在mousemove事件处理程序上。我必须获取 div 的当前宽度、高度、顶部和左侧。为此,我使用函数来返回特定值,并且必须在主函数内的不同条件下使用这些值。

如果我尝试用这些值分配局部变量并在前面的代码中使用这些变量,那么脚本会变慢。意味着调整大小和拖动存在延迟。

但是,如果我每次都调用函数而不是在条件中使用这些变量,那么就没有延迟。

知道什么可能是这个问题的原因吗?

代码示例

// Code executes with a delay
function AdjustElement()
{
     var elemHeight = GetHeight ( elem );
     var elemWidth = GetWidth ( elem );
     var elemTop = GetTop ( elem );
     var elemLeft = GetLeft ( elem );

     if ( elemLeft >= 20 && elemRight <= 200 )
     {
        //code for moving element
     }
     if ( elemTop >= 20 && elemTop <= 200 )
     {
       // code for moving element
     }
     if ( elemHeight >= 60 && elemHeight <= 300 )
     {
       // code for resizing element
     }
     if ( elemWidth >= 60 && elemWidth <= 300 )
     {
       // code for resizing element
     } 
}

// Code executes without delay
function AdjustElement()
{
     if ( GetLeft(elem) >= 20 && GetRight(elem) <= 200 )
     {
        //code for moving element
     }
     if ( GetTop(elem) >= 20 && GetTop(elem) <= 200 )
     {
       // code for moving element
     }
     if ( GetHeight(elem) >= 60 && GetHeight(elem) <= 300 )
     {
       // code for resizing element
     }
     if ( GetWidth(elem) >= 60 && GetWidth(elem) <= 300 )
     {
       // code for resizing element
     }
}


// General functions
function GetWidth(elem)
{
   return elem.offsetWidth;
}

function GetHeight(elem)
{
   return elem.offsetHeight;
}

function GetTop(elem)
{
   return elem.offsetTop;
}

function GetLeft(elem)
{
   return elem.offsetLeft;
}
4

0 回答 0