2

我有一个不同的问题,当用户单击页面并拖动到某个位置时,我应该使用该坐标绘制一个矩形 div ...

但它工作正常,当用户不滚动窗口时..

如果他滚动窗口。然后他试图创建一个矩形意味着,然后它来到了较高的位置..

我该如何解决这个问题..我对javascript没有太多了解..

如果我不能详细解释你。随意问我..

谢谢拉杰什

4

1 回答 1

0

听起来您缺少滚动位置的起点和终点。在 mousedown 事件上获取滚动位置,然后在 mouseup 事件上获取滚动位置。使用滚动位置的变化来帮助确定 div 的大小。

在每个事件上,使用如下函数获取滚动位置:

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}
于 2014-01-08T20:01:44.943 回答