ページ上の特定の項目にカーソルを合わせると画像を回転させようとしています。ここで提供されているソリューションを使用しています(私の目的に合わせて編集しました):https://stackoverflow.com/a/10235298。あなたは、私がここで達成しようとしています何の例を見ることができます:https://jsfiddle.net/t100gq25/画像を回転するスムーズな移行でマウスjqueryに従う
$(function() {
var img = $('.arrow');
if (img.length > 0) {
var offset = img.offset();
$('.animation-trigger').mouseenter(function (event) {
var element = $(this);
var elementPosition = element.offset();
var elementX = elementPosition.left + (element.width()/2);
var elementY = elementPosition.top + (element.height()/2);
var imgX = offset.left + (img.width()/2);
var imgY = offset.top + (img.height()/2);
var radians = Math.atan2(elementX - imgX, elementY - imgY);
var degrees = (radians * (180/Math.PI) * -1) + 90;
img.css('-moz-transform', 'rotate(' + degrees + 'deg)')
.css('-webkit-transform', 'rotate(' + degrees + 'deg)')
.css('-o-transform', 'rotate(' + degrees + 'deg)')
.css('-ms-transform', 'rotate(' + degrees + 'deg)');
});
}
});
body {
padding-top: 150px;
}
.container {
height: 500px;
}
.menu-1,
.menu-2,
.menu-3,
.menu-4 {
position: absolute;
z-index: 99
}
.menu-1 {
top: 20%;
left: 20%;
}
.menu-2 {
top: 20%;
right: 20%;
}
.menu-3 {
bottom: 20%;
left: 20%;
}
.menu-4 {
bottom: 20%;
right: 20%;
}
.arrow {
position: absolute;
top: 50%;
left: 50%;
margin-top: -100px;
margin-left: -100px;
height: 200px;
width: 200px;
-webkit-transition: all 400ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
-moz-transition: all 400ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
-o-transition: all 400ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
transition: all 400ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<a href="#" class="menu-1">
<img src="http://placehold.it/140x35&text=4" class="animation-trigger">
</a>
<a href="#" class="menu-2">
<img src="http://placehold.it/140x35&text=1" class="animation-trigger">
</a>
<a href="#" class="menu-3">
<img src="http://placehold.it/140x35&text=3" class="animation-trigger">
</a>
<a href="#" class="menu-4">
<img src="http://placehold.it/140x35&text=2" class="animation-trigger">
</a>
<img src="https://image.freepik.com/free-icon/arrow-full-shape-pointing-to-right-direction_318-32063.png" class="arrow">
それは素晴らしい作品!しかし、リンク1にカーソルを合わせると、矢印が矢印に変わり、リンク4にマウスカーソルを合わせると、再び矢印がポイントになります。しかし、ちょうど旋回する短いルート(反時計回り)を取るのではなく、時計回りに回っています。
私はいくつかの試みを行ってきましたが、誰も働いていませんでした。そして、私が働くことができるアイデアを思い付くと、それは非常に長く巻き込まれています。私はこれに近づける最善の方法を見つけ出すのに苦労しているので、どんな助けも非常に高く評価されるだろう。
jsfiddleは、私が達成しようとしているもののクイックモックアップの例です。残念ながら、クライアントの機密性のために実際のソースコードを共有することはできません。提供されるすべてのソリューションは、最終サイトに適用されます。
多くの感謝:)
あなたの先生は、男です!本当にありがとう、クライアントプロジェクトにまっすぐ落として、軽微な微調整で作業しました! –
素晴らしい..喜んで助けて! – Chitrang