Cssで背景画像を作成し、33%幅のdiv要素を引き伸ばしたい
background-image:url(); background-size:cover
Mouseoverまたはmouseneterでdivの背景画像のズームインをアニメーション化するにはどうすればよいですか?これを実行できるプラグインはありますか?背景divは伸縮性のあるページであるため、background-size:coverを使用する必要があります。
私はまだフィドルを持っていませんcos私はどこで、どのように始めるべきかわかりません
<div class="wrap">
<div></div>
<p>hello</p>
</div>
html, body {
height: 100%;
}
div.wrap {
height: 33%;
width: 33%;
overflow: hidden;
position: relative;
}
div.wrap > div {
position: absolute;
height: 100%;
width: 100%;
-moz-transition: all .5s;
-webkit-transition: all .5s;
transition: all .5s;
-moz-transform: scale(1,1);
-webkit-transform: scale(1,1);
transform: scale(1,1);
background-image: url('http://pimg.tradeindia.com/00288122/b/0/Our-Valuable-Client-List-Click-on-Image-.jpg');
-moz-background-size: cover;
-webkit-background-size: cover;
background-size: cover;
z-index: -1;
}
div.wrap:hover > div {
-moz-transform: scale(2,2);
-webkit-transform: scale(2,2);
transform: scale(2,2);
}
Demo(background-size: cover;
を使用して要素を遷移/ズームする)
cover
サイズの移行が必要であると言ったので、前に言ったトリックを思いつきました。ここでは、子要素を持つposition: relative;
要素の下に子要素がネストされていますposition: absolute;
をbackground-image
に設定し、background-size
をcover
に設定してから、親のhover
で、transform: scale(2,2);
プロパティを使用して要素を拡大します。
また、このソリューションを使用する際の重要なことは、z-index
要素のposition: absolute;
を、内部に配置する要素よりも低く設定する必要があるため、background
値がcover
の場合、background-size
をアニメーション化できないため、px
または%
が必要になります。または、img
タグを使用することもできますtransform: scale(2,2);
プロパティ付き。
デモ2(中心からズームインまたはズームアウト)
div {
height: 200px;
width: 200px;
background: url('http://pimg.tradeindia.com/00288122/b/0/Our-Valuable-Client-List-Click-on-Image-.jpg');
background-size: 100% 100%;
-moz-transition: all .5s;
-webkit-transition: all .5s;
transition: all .5s;
}
div:hover {
background-size: 150% 150%;
}
background-size: cover;
に固執する場合は、要素全体をoverflow: hidden;
で固定寸法のラッパー要素にラップし、親要素のhover
で子要素をスケーリングする必要があります。
コメントしたように、img
タグの例では、transform: scale(2,2);
を使用して、overflow: hidden;
に設定された親要素でそれを実現できます。
div {
height:300px;
width: 300px;
overflow: hidden;
}
div img {
-moz-transition: all .5s;
-webkit-transition: all .5s;
transition: all .5s;
-moz-transform: scale(1,1);
-webkit-transform: scale(1,1);
transform: scale(1,1);
}
div:hover img {
-moz-transform: scale(2,2);
-webkit-transform: scale(2,2);
transform: scale(2,2);
}