2015-03-07 3 views
0

Я хочу найти верхнее положение повернутого div от элемента, я могу найти верхнее положение элемента, но хочу верхнюю позицию (позиция Y) слева (x).Найти поворотное верхнее положение слева

Я использовал это

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 

enter image description here

Я хочу, чтобы повторно организовать тащил деталь после ротации, что я нахожу верхнее положение. Пожалуйста, обратите внимание на вес линий связи jsbin на доске.

+0

Ваш вопрос не очень понятно, но похоже, что вы можете использовать теорему Пифагора для нахождения расстояния, так как вы можете найти позиции верхней части div и вершины элемента. – brenzy

+0

Я изменил изображение. Надеюсь, ты понял мой вопрос. – sarath

ответ

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; 
    // ... 
+0

Основываясь на первой ссылке, я предположил, что вы использовали svg. Я обновил свой ответ, чтобы повернуть выпавшее изображение. – brenzy

+0

Чтобы получить поворотное положение, вам нужно выполнить некоторую тригонометрию для определения радиуса: 'var radius = (offset.left - xCenter)/Math.cos (degreesToRadians (19));' Я обновил jsfiddle выше. Чтобы вернуться, выведите вес из повернутого div и верните его в исходный родитель. Вы можете сделать что-то подобное для перетаскивания или разрешить перетаскивание в пределах области с поворотом. – brenzy

+0

Все работает отлично, за исключением того, что родительский элемент вращается, а не перемещается с помощью курсора. Я пытаюсь исправить эту проблему. я не могу достичь, не могли бы вы помочь мне в этом. – sarath

Смежные вопросы