【问题标题】:Find rotated div top position from left从左侧查找旋转的 div 顶部位置
【发布时间】:2015-03-07 12:49:04
【问题描述】:

我想从元素中找到旋转 div 的顶部位置,我可以找到元素的顶部位置,但我想要从左侧(x)位置开始的顶部(Y 位置)位置。

我用这个

 var degree = degree;
        if (degree < 0) {
            var sign = -1;
        } else {
            var sign = 1;
        }
        var numY = Math.abs(myElem.position().top + sign * ((myElem.outerHeight() / 2) - Math.sin(degree)));
        var numX = 0
        var bottom = myElem.position().top + myElem.outerHeight(true);
        y = numY;

提前致谢

Slope:20 deg, height: 20px,width:400px, left 150px i want find top position

我想在旋转后重新排列拖动的项目,因为我找到了最高位置。 请找到 jsbin 链接将重量放入木板。

【问题讨论】:

  • 你的问题不是很清楚,但看起来你可以使用勾股定理来找到距离,因为你可以找到 div 的顶部和顶部的位置元素。
  • 我的头像变了。希望你能理解我的问题

标签: javascript jquery html rotation position


【解决方案1】:

我认为将可拖动图像添加到旋转的 div 中并让所有内容一起旋转更有意义,而不是担心可拖动图像的位置。这是一个更新了您的代码的 jsfiddle(我只实现了在右侧放置):http://jsfiddle.net/brendaz/17wwtffz/

drop: 
  // ...
  var offset = ui.draggable.offset();
  var rotateOffset = $('.rotatableAra').offset();
  // Take the weight out of it's parent div and add it to the rotatable area
  ui.draggable.remove();
  ui.draggable.addClass("dropped");
  ui.draggable.addClass("rightPlankDropped");
  $('.rotatableAra').append(ui.draggable);
  ui.draggable.css("top",  ($('.rightPlank').position().top- ui.draggable.height()).toString() + "px");
  ui.draggable.css("left", (offset.left - rotateOffset.left).toString() + "px");
  rightArray[ind] = $textval * pos;
  // ...

【讨论】:

  • 根据第一个链接,我假设您使用的是 svg。我已更新我的答案以旋转放置的图像。
  • 要获得旋转位置,您必须做一些三角函数来确定半径:var radius = (offset.left - xCenter) / Math.cos(degreesToRadians(19)); 我已经更新了上面的 jsfiddle。要恢复,请从旋转的 div 中取出重量并将其放回其原始父级。您可以执行类似的拖动操作,或者只允许在旋转区域内拖动。
  • 一切正常,除非父级可拖动元素位置不与光标一起旋转。我正在尝试解决这个问题。我无法做到这一点,请你帮帮我。
  • 我想我已经接近使用客户端坐标的解决方案,然后在拖动过程中旋转。我现在没有时间看这个,但我明天会发表评论,让您知道我的解决方案是否有效。
  • 我将此答案http://stackoverflow.com/questions/10810857/inner-div-inside-an-outer-rotated-div-does-not-follow-mouse-in-case-dragging-wit#10898947 中的代码添加到此fiddle (同样仅在右侧)并且拖动工作。您需要清理代码以消除光标的偏移量。
猜你喜欢
  • 2013-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-02
相关资源
最近更新 更多