【问题标题】:Rotating an element based on cursor position in a separate element根据单独元素中的光标位置旋转元素
【发布时间】:2023-10-16 19:13:02
【问题描述】:

我最近一直在研究面包屑目录功能,该功能需要一个元素根据面包屑容器元素中的光标 x 位置进行旋转。长话短说,当光标位于“#target-box”内时,我需要下部“#pointer-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/

谢谢

【问题讨论】:

  • 试试这个人 - 可能会帮助你 - jsfiddle.net/22Feh/5cheerios!
  • 感谢您的回复。你有机会在现场演示中试一试吗?明天我会尽快尝试一下。干杯!
  • 当然,不用担心!慢慢来!干杯!
  • Tats_innit - 知道如何在调整窗口大小时重置比例以使箭头和光标保持对齐吗?再次感谢。
  • @Tats_innit 嘿,发表您的评论作为答案,以便我们为您投票!

标签: jquery css rotation mousemove


【解决方案1】:

来自@brenjt 的 :) 回复,将其粘贴为答案帖子,这是一个示例 demo 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);
}

​

【讨论】:

  • 有什么方法可以在按下时激活并在发布时停用?
  • @mugur sure :) 我在 loooong 之后回复:为你演示 jsfiddle.net/dPDF3/1 玩得开心! 它是如何工作的 点击针然后旋转你的鼠标/鼠标;现在再次点击它会unbind移动等等!
  • @Tats_innit 如果您使用的是 1.7.2 之前的 JQuery,那么您可以只使用 img.css('transform', 'rotate('+degree+'deg)');没有任何前缀,因为新版本的 JQuery 会自动添加前缀,希望这对某人有所帮助。
  • biggggg 喜欢 :)
最近更新 更多