【问题标题】:Mousedown pageX , pageY is not same after mousemove pageX pageY , happens randomlymousedown pageX , pageY 在 mousemove pageX pageY 后不一样,随机发生
【发布时间】:2012-02-01 22:02:34
【问题描述】:

我想创建一个多选框(在空白处单击并拖动会有一个蓝色的div),但是单击和拖动不一致,我无法找出问题。

尝试从右下角、右上角或左下角的空白区域拖动,您会看到浅蓝色框实际上并不是从鼠标按下的点开始

http://jsfiddle.net/wizztjh/jk4Uc/7/

【问题讨论】:

  • 到底是什么问题?说它“不一致”并不是很有描述性或很有帮助。您正在经历什么(以及何时)不是您期望或想要的?
  • 它实际上对我来说非常令人印象深刻。
  • 尝试从右下角的空白处拖动,您可以看到浅蓝色框实际上并不是从鼠标向下的点开始
  • @wizztjh 我已经更新了答案,请检查。

标签: javascript jquery


【解决方案1】:

在你的代码中我改变了

$(this).unbind().bind("mousemove" ,function(e){

$(this).bind("mousemove" ,function(e){    

新代码可见@http://jsfiddle.net/jk4Uc/6/

编辑

试试这个http://jsfiddle.net/jk4Uc/10/ 在这个你的拖动完全从鼠标向下开始。我将e.pageX 更改为e.clientX

编辑

这完全按照你的要求工作 @http://jsfiddle.net/jk4Uc/11/

改变了

var oriX = e.clientX, //<== Here
    oriY= e.clientY;  //<== Here
$("<div id='multiselectbox'></div>")
      .appendTo("#canvas")
      .css({
            top:oriY,  //<== Here
            left:oriX  //<== Here
       });

希望这是您正在寻找的。​​p>

【讨论】:

  • 那是我通过添加 unbind 来进行试验,因为我怀疑它使用旧的 oriX 和 oriY。
  • 这就是您要找的答案吗?
  • 谢谢你的帮助,伙计!但是当从画布的右上角拖动时,宽度和高度仍然关闭,我仍然无法识别问题
猜你喜欢
  • 2012-05-22
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 2011-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多