2017-07-22 17 views
1

誰かが私のアイコンが回転すると右に移動する理由を教えてもらえますか?回転させるときにHTML画像が右に移動する

.rotate-icon{ 
    display: inline-block; 
    -webkit-transition: -webkit-transform 0.6s ease-out; 
    -moz-transition: -moz-transform 0.6s ease-out; 
    -transition: -transform 0.6s ease-out; 
} 
.rotate-icon:hover{ 
    display: inline-block; 
-webkit-transform: rotate(-360deg); 
-moz-transform: rotate(-360deg); 
-transform: rotate(-360deg); 
} 
img{ 
position:absolute; 
top: 95vh; 
left:10%; 
transform: translate(-50%, -50%); 
} 

JSfiddle

私は、私もそれをすべき回転しない理由を、私はそれを得ることができないHTMLにはかなり新しいですので。 私の目標は、ホバー上で回転する左下のアイコンにアイコンを取得することです。

ご回答ありがとうございます。

+0

あなたがイメージから変換を削除した場合、それは確かに回転しません。なぜあなたはそのイメージを変えているのですか? –

+0

角に正しく置く必要があると思いました。 さて、ありがとうございます。 – Stalk3r

+0

あなたの問題は、以下のように書かれていますが、トランスフォームと接続しています。翻訳 –

答えて

0

あなたは、IMGのスタイルルールから transform: translate(-50%, -50%);を削除し、あなたが期待するようにそれが動作 、回転作業をさせるins't単一の項目、上の2つの遷移を適用しています。ここで

あなたがホバーにrotate()transformを再定義するときは、translate()を上書きしています

+0

ありがとうございます。 – Stalk3r

+0

他の人も助けてもらえるように答えを受け入れてください。ありがとうございました –

1

あなたはこれを使用することはできません:あなたは良い位置要素を持っていないので、-transform: rotate(-360deg);

transform: translate(-50%, -50%); 

それは、このメソッドをオーバーライドだが。

質問に書いているときに要素を回転させたい場合は、transform: translate(-50%, -50%);を親要素に移動する必要があります。

+0

ありがとうございました。 – Stalk3r

0

ためfiddleです。これらの2つのプロパティを組み合わせて、rotate()の初期値をfromに設定します。

.rotate-icon{ 
 
    display: inline-block; 
 
\t -webkit-transition: -webkit-transform 0.6s ease-out; 
 
\t -moz-transition: -moz-transform 0.6s ease-out; 
 
\t transition: transform 0.6s ease-out; 
 
} 
 
.rotate-icon:hover{ 
 
    display: inline-block; 
 
\t -webkit-transform: translate(-50%, -50%) rotate(-360deg); 
 
\t -moz-transform: translate(-50%, -50%) rotate(-360deg); 
 
\t transform: translate(-50%, -50%) rotate(-360deg); 
 
} 
 
img{ 
 
\t position:absolute; 
 
\t top: 95vh; 
 
\t left:10%; 
 
    transform: translate(-50%, -50%) rotate(0deg) ; 
 
}
<img src="https://d30y9cdsu7xlg0.cloudfront.net/png/2149-200.png" class="rotate-icon">

+0

再計算の高さ/幅に関する問題は解決しません。アニメーション中にスクロールバーに表示されます。私の意見では、1つのアニメーションに対してtranslateとrotateを使うのは良い考えではありません。 –

+0

@kris_IV「アニメーション中にスクロールバーで見ることができます」とはどういう意味ですか? OPは最初に 'translate()'を使って要素を配置し、 'translate()'を 'rotate()'で上書きします。私は 'translate()'を使って要素の位置を決めていると仮定しています。そして、同じ位置で 'rotate() 'したいだけです。なぜ元の位置情報を削除するのですか?彼らが必要とするのは、 'transform'プロパティを組み合わせることだけです。 –

+0

@michaelcookerスクロールバーを見てください。彼は追加のcss 'top:95vh; left:10%;およびアニメーションの最上部が上にない場合、左は残らないので、アニメーション中にドキュメントの実際のサイズが変化していることがわかります。私にとっては良い解決策のようには見えません。私の意見では、彼は親のdivを作り、それを適切な場所に配置してから、img(子供)のために回転するだけです。 –

関連する問題