2017-06-12 9 views
4

:)ありがとうございました。:ホバリングローテーションCSSの位置を把握して

ホバリング時にCSSを使用してオブジェクトを回転させていますが、移動したままにしておくと、新しい位置に残ります。私は周りを探索しましたが、私が見つけることができる唯一のものはcss :hover rotate element and keep the new positionです。それは上を行き来するようです。

この効果はCSSで完全に達成できますか?ホバリングをやめると、アイコンが180の位置に残ります。

私はこのコードを使用:

i.fa.fa-globe:hover { 
color: #e9204f; 
transition: 0.9s; 
transform: rotatey(180deg); 

}

を、これはどんな違いがあればまた、それは、フォント素晴らしいアイコンです。

編集:

To everyone on Stackoverflow。ありがとうございました。初心者がいることを理解しているフォーラム、ありがとうございました。最初は説明を理解できないからといって、怠け者でも怠け者でもありません。皆さんは素晴らしいですが、帽子をはずしてください。

EDIT2 - 誰もがそれを必要とするための簡単なCSSのソリューション(助けたコメントの中で紳士から撮影):

.lovernehovermarket i.fa.fa-rocket { 
transform: rotate(0deg); 
transition: transform 999s; 

}

.lovernehovermarket:hover i.fa.fa-rocket { 
color: #e9204f; 
transition: 0.9s; 
transform: rotate(100deg); 

}

+0

あなたが360degを回転させている場合は、開始位置と同じ「新しい位置」ではありません? –

+0

こんにちは、ありがとうございます。申し訳ありませんが悪い例だった - それは完璧に動作します。私は3つのアイコンを持っていて、そのうちの1つは180度だけ回転し、ホバーを動かすと、それは元に戻ります。だから私はマウスを動かすと180度の角度を維持する簡単な方法を見つけることを望んでいました。それを指摘してくれてありがとう、Stackoverflowを愛する必要があります。すぐ編集。 – eMikkelsen

答えて

0

アニメーションを使用します要素がホバリングされたとき(mouseoverイベント)JSイベントリスナーを使用して適用します。要素が第一の時間のために推移している場合は、イベントリスナーを削除します。

var rect = document.querySelector('.rectangle') 
 

 
function rotate() { 
 
    this.classList.add('rotate'); 
 
    
 
    rect.removeEventListener('mouseover', rotate); 
 
} 
 

 
rect.addEventListener('mouseover', rotate);
.rectangle { 
 
    width: 100px; 
 
    height: 100px; 
 
    background: gold; 
 
} 
 

 
.rotate { 
 
    animation: rotate 0.5s linear; 
 
} 
 

 
@keyframes rotate { 
 
    from { 
 
    transform: rotate(0deg); 
 
    } 
 

 
    to { 
 
    transform: rotate(180deg); 
 
    } 
 
} 
 

 
body { 
 
    padding: 30px; 
 
}
<div class="rectangle"></div>

それが両者の間に変換することができますように、あなたはまた、あなたの要素の定期的なCSSに初期 transform状態を必要とする
+0

こんにちは! ありがとうございました。ほんとうにありがとう。私は私の元のポストで少しのタイプミスをした、私はお詫び申し上げます。 360度回転しません。それは180度回転し、新しい180度の角度にとどまるようにホバリングを外すと、私はそれを望みます。だから、アイコンは上を指すことから始まり、ホバーすると下を指します。しかし、ホバーを削除すると、再び上向きになります。 – eMikkelsen

+0

@eMikkelsenは私の答えを見て、それはマウスの上に要素を上下逆さまにして、もう一度アニメーションしません。 – Mauro

0

定義された状態:

.rotate { 
 
    width: 20px; 
 
    height: 100px; 
 
    background: blue; 
 
    transition: 0.9s; 
 
    transform: rotate(0deg); 
 
} 
 

 
.rotate:hover { 
 
    transform: rotate(180deg); 
 
} 
 

 
body { 
 
    padding: 100px; 
 
}
<div class="rotate"></div>

0

回転状態を維持したい場合は、少しのJQueryを使用してトランジションが終了したかどうかを確認し、クラスを変更してぼかしで元の状態に戻らないようにする必要があります。

このようにしてdivを一度回転させ、そのクラスを変更して回転状態を維持します。

$('.rotate').hover(function() { 
 
    $(this).addClass("animate"); 
 
    $(this).one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', 
 
    function(e) { 
 

 
\t \t $(this).removeClass('rotate').addClass('rotated'); 
 

 
    }); 
 

 
});
.rotate { 
 
    width: 100px; 
 
    height: 100px; 
 
    background: gold; 
 
    transition-property: transform; 
 
    transition-duration: 1.5s; 
 
    transition-timing-function: linear; 
 
} 
 

 
.animate { 
 
    animation: rotate 1s linear; 
 
    transform: rotate(180deg); 
 
    animation-play-state: running; 
 
} 
 
.rotated 
 
{ 
 
    width: 100px; 
 
    height: 100px; 
 
    background: gold; 
 
    transform: rotate(180deg); 
 
} 
 

 
body { 
 
    padding: 30px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="rotate">some text</div>

1

私はあなたが純粋なCSSのソリューションをしたい、あなたが戻って基底状態に非常に高く行くことのトランジションの時間を設定することができます。

それは永遠にないのですが、それはほとんどのユーザーのためにかなり近いです:

.test { 
 
    display: inline-block; 
 
    margin: 10px; 
 
    background-color: tomato; 
 
    transform: rotate(0deg); 
 
    transition: transform 999s 999s; 
 
} 
 
.test:hover { 
 
    transform: rotate(90deg); 
 
    transition: transform 0.5s; 
 
}
<div class="test">TEST</div>

+0

こんにちは! これはまさに私が探していたものでした。そのような単純な解決策とそれは完全に動作しています。私は心からあなたの助けに感謝します。本当です。もちろん私もあなたを追いやった。 このCSSソリューションの欠点があるかどうか尋ねることができますか?誰もがjQueryなどの使用を主張しているので、私はそこにいると仮定していますか? :) あなたの時間を取って申し訳ありません。もう一度あなたに感謝します。大いに感謝する。 – eMikkelsen

+0

私はそれを編集しました、遅れを加えて、これは何も動かさないでしょう。私が考えることができる唯一の欠点は、早送りを解除すると、最初の動きが完了しないことです。そして、いくつかの人々がこの "ハッキー"それが助けてくれて幸せを見つけるかもしれません! – vals

+0

プロの紳士からの専門的な反応。もう一度あなたに何度も感謝し、あなたがやったことと潜在的な賛否両論を正確に説明するために、再び応答してください。すてきな一日を。 – eMikkelsen

関連する問題