我想计算div的右上角位置,如果它不旋转,则可以计算它:

  $("div").offset().top + $("div").width();


但是当我们旋转div时,如何计算右上角的位置?

轮换代码:

$("div").slider({
   slide: function(e,u){
      $(this).rotate({ angle : u.value});
   }
});

最佳答案

您可以尝试以下方法:

的JavaScript

$(".slider").slider({
    min: 0,
    max: 180,
   slide: function(e,u){
      $(this).rotate({ angle : u.value});
       calculateTopLeft(u.value);
   }
});

var pointer = $('.pointer');
var slider = $('.slider');
var center = { top: slider.offset().top, left: slider.offset().left + slider.width() / 2 };
var offset = slider.offset();

function calculateTopLeft(angle) {
    var radius = slider.width() / 2,
        radians = (angle * Math.PI) / 180;
    pointer.css({
        left: center.left + radius * Math.cos(radians),
        top: center.top + radius * Math.sin(radians)
    });
}
//Equation of the circle
//x = a + r * cos(t);
//y = b + r * sin(t);​


这是一个示例:http://jsfiddle.net/zFRwM/2/

可能您需要进行一些更正,但是我认为这个想法很明确。

关于javascript - 旋转div时计算div的右上 Angular 偏移量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10633939/

10-12 12:19
查看更多