円の中に正方形の画像を入れたいです。
ユーザーが画像にカーソルを合わせると、画像が拡大縮小 (拡大) されます。
円は同じサイズのままにする必要があります。
CSS トランジションの間のみ、四角形の画像が円に重なります (overflow:hidden がまったく存在しないかのように)。
Chrome と Safari で奇妙な動作をするデモを次に示します: http://codepen.io/jshawl/full/flbau
firefoxでは問題なく動作しています。
円の中に正方形の画像を入れたいです。
ユーザーが画像にカーソルを合わせると、画像が拡大縮小 (拡大) されます。
円は同じサイズのままにする必要があります。
CSS トランジションの間のみ、四角形の画像が円に重なります (overflow:hidden がまったく存在しないかのように)。
Chrome と Safari で奇妙な動作をするデモを次に示します: http://codepen.io/jshawl/full/flbau
firefoxでは問題なく動作しています。
余分なマークアップ (円と正方形のコンテナーは 1 つしか必要ありません) を削除し、img 自体のスタイルを設定しました。
#wrapper {
width: 500px;
height: 500px;
border-radius: 50%;
overflow: hidden;
-webkit-mask-image: -webkit-radial-gradient(circle, white, black);
}
#test {
width: 100%;
height: 100%;
transition: all 2s linear;
}
#test:hover {
transform: scale(1.2);
}
<div id="wrapper">
<img src="http://rack.3.mshcdn.com/media/ZgkyMDEzLzA1LzA4L2JlL2JhYmllc193aXRoLjA5NGNjLnBuZwpwCXRodW1iCTg1MHg1OTA-CmUJanBn/8f195417/e44/babies_with_swagg.jpg" id="test">
</div>
あまりにも多くの要素をスタイリングしているように見えます! ここにフォークを作成しました
SASS コードの一部を編集して、コンパス ライブラリを利用し、ここで確認できるtransition
およびプロパティをより有効に活用しました。transform
body { padding: 3em; }
.circle {
height: 500px;
width: 500px;
border: 1px solid black;
@include border-radius(500px);
overflow: hidden;
}
.circle img {
height: 500px;
width: 500px;
@include transition(all 0.3s ease);
&:hover { @include transform(scale(1.1)); }
}
うまくいけば、これが役に立ちます!要素は、スペースに関する一般的な情報 (幅や高さなど)circle
を持つ親コンテナーと考えてください。画像自体の縁が丸くなっています。これが編集したい要素です! 親コンテナを操作せずに、ここでこの要素をスケーリングおよび変換できます。ライブラリの使用に関する追加情報については、コンパスを参照してください。幸運を!500px
500px
500px
circle