基于单独元素中的光标位置旋转元素

时间:2012-04-02 07:32:39

标签: jquery css rotation mousemove

我最近在使用breadcrumbs目录功能,需要根据breadcrumbs容器元素中的光标x位置旋转元素。长话短说,我需要在'#pointer-box'下面的箭头指向光标,当它在'#target-box'中时。

我正在寻找两个单独的公式,a。)当'#target-box'光标x位置为0时设置箭头的最左侧位置,b。)保持箭头的左边 - 大多数和最右侧的旋转属性在任何浏览器宽度或窗口大小调整时成比例。

非常感谢任何帮助。

这是现场演示。 http://jsfiddle.net/HeFqh/

谢谢

更新

在Tats_innit的帮助下,当它在'#target-box'内时,我能够得到指向光标的箭头。现在我有两个具体问题需要解决。

a。)调整窗口大小时,箭头和光标不再对齐。

b。)'mousemove'上的'var y'不扣除顶部偏移量

var y = e.pageY - this.offsetTop

更新的现场演示。 http://jsfiddle.net/HeFqh/11/

谢谢

1 个答案:

答案 0 :(得分:13)

Hiya来自@ brenjt的:)回复以上将此作为答案帖子&这是一个示例演示 http://jsfiddle.net/JqBZb/

在此感谢及其他有用的链接:jQuery resize to aspect ratio&这里How to resize images proportionally / keeping the aspect ratio?

如果我遗漏了什么,请告诉我!希望这可以帮助!干得好,干杯!

jquery代码

var img = $('.image');
if(img.length > 0){
    var offset = img.offset();
    function mouse(evt){
        var center_x = (offset.left) + (img.width()/2);
        var center_y = (offset.top) + (img.height()/2);
        var mouse_x = evt.pageX; var mouse_y = evt.pageY;
        var radians = Math.atan2(mouse_x - center_x, mouse_y - center_y);
        var degree = (radians * (180 / Math.PI) * -1) + 90; 
        img.css('-moz-transform', 'rotate('+degree+'deg)');
        img.css('-webkit-transform', 'rotate('+degree+'deg)');
        img.css('-o-transform', 'rotate('+degree+'deg)');
        img.css('-ms-transform', 'rotate('+degree+'deg)');
    }
    $(document).mousemove(mouse);
}

​