どうも、方向を意識したホバリング効果を作成する必要がありますが、正しい計算で立ち往生しています。(計算の問題か、マークアップの間違いか?)
これまでに行ったことは次のとおりです。
左右の矢印は期待どおりに機能しますが、上下は失敗します。私が間違っていることはありますか?
$("#circle").on('mousemove', function(e) {
var elem = $(this),
arrowT = $('.arrow.top'),
arrowR = $('.arrow.right'),
arrowB = $('.arrow.bottom'),
arrowL = $('.arrow.left'),
offset = elem.offset(),
pageX = e.pageX - offset.left,
pageY = e.pageY - offset.top,
side = {
top: pageY < (elem.height() / 2),
left: pageX < (elem.width() / 2),
bottom: pageY > (elem.height() / 2),
right: pageX > (elem.width() / 2)
};
arrowT.css({
top: side.top ? pageY - arrowT.outerHeight() : null
});
arrowR.css({
right: side.right ? -(pageX - (elem.width() - arrowR.outerWidth())) : null
});
arrowB.css({
bottom: side.bottom ? -(pageY - (elem.height() - arrowB.outerHeight())) : null
});
arrowL.css({
left: side.left ? pageX - arrowL.outerWidth() : null
});
});