Reputation: 6742
I have an image which on hover animates size and position. The problem is that the image is not centered after hovering. The animation what I want to achieve is on hover animate the logo to top center and scale down.
.col-4 {
float: left;
width: 25%;
position: relative;
overflow: hidden;
}
.col-4 img.bg {
width: 100%;
-webkit-transition: .5s;
transition: .5s;
}
.col-4:hover img.bg {
-webkit-transform: scale(1.5);
-ms-transform: scale(1.5);
transform: scale(1.5);
}
.col-4 .logo {
position: absolute;
width: 50%;
top: 50%;
left: 50%;
-webkit-transform: translateX(-50%) translateY(-50%);
-ms-transform: translateX(-50%) translateY(-50%);
transform: translateX(-50%) translateY(-50%);
-webkit-transition: .5s;
transition: .5s;
-webkit-transform-origin: 50% 50%;
-ms-transform-origin: 50% 50%;
transform-origin: 50% 50%;
}
.col-4:hover .logo {
top: 10%;
-webkit-transform: scale(.5);
-ms-transform: scale(.5);
transform: scale(.5);
}
.col-4 .logo img {
width: 100%;
}
.overlay-bg {
background: rgba(0, 0, 0, 0.4);
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
-webkit-transition: .5s;
transition: .5s;
}
.col-4:hover .overlay-bg {
background: rgba(0, 0, 0, 0);
}
<div class="row">
<div class="col-4">
<img src="http://www.freebiesgallery.com/wp-content/uploads/2013/08/light-blue-background-3.jpg" class="bg" alt=" " />
<div class="logo">
<img src="http://fineprintnyc.com/images/blog/history-of-logos/google/google-logo.png" alt=" " />
</div>
<span class="overlay-bg"></span>
</div>
<div class="col-4">
<img src="http://www.freebiesgallery.com/wp-content/uploads/2013/08/light-blue-background-3.jpg" class="bg" alt=" " />
<div class="logo">
<img src="http://fineprintnyc.com/images/blog/history-of-logos/google/google-logo.png" alt=" " />
</div>
<span class="overlay-bg"></span>
</div>
<div class="col-4">
<img src="http://www.freebiesgallery.com/wp-content/uploads/2013/08/light-blue-background-3.jpg" class="bg" alt=" " />
<div class="logo">
<img src="http://fineprintnyc.com/images/blog/history-of-logos/google/google-logo.png" alt=" " />
</div>
<span class="overlay-bg"></span>
</div>
<div class="col-4">
<img src="http://www.freebiesgallery.com/wp-content/uploads/2013/08/light-blue-background-3.jpg" class="bg" alt=" " />
<div class="logo">
<img src="http://fineprintnyc.com/images/blog/history-of-logos/google/google-logo.png" alt=" " />
</div>
<span class="overlay-bg"></span>
</div>
</div>
Jsfiddle link:
Upvotes: 1
Views: 2465
Reputation: 8572
Try this:
.col-4 {
float: left;
width: 25%;
position: relative;
overflow: hidden;
}
.col-4 img.bg {
width: 100%;
-webkit-transition: 0.5s;
transition: 0.5s;
}
.col-4:hover img.bg {
-webkit-transform: scale(1.5);
-ms-transform: scale(1.5);
transform: scale(1.5);
}
.col-4 .logo {
position: absolute;
width: 50%;
top: 25%;
left: 25%;
-webkit-transition: 0.5s;
transition: 0.5s;
}
.col-4:hover .logo {
top: 0;
-webkit-transform: scale(0.5);
-ms-transform: scale(0.5);
transform: scale(0.5);
}
.col-4 .logo img {
width: 100%;
}
.overlay-bg {
background: rgba(0, 0, 0, 0.4);
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
-webkit-transition: 0.5s;
transition: 0.5s;
}
.col-4:hover .overlay-bg {
background: rgba(0, 0, 0, 0);
}
<div class="row">
<div class="col-4">
<img src="http://www.freebiesgallery.com/wp-content/uploads/2013/08/light-blue-background-3.jpg" class="bg"
alt=" "/>
<div class="logo">
<img src="http://fineprintnyc.com/images/blog/history-of-logos/google/google-logo.png" alt=" "/>
</div>
<span class="overlay-bg"></span>
</div>
<div class="col-4">
<img src="http://www.freebiesgallery.com/wp-content/uploads/2013/08/light-blue-background-3.jpg" class="bg"
alt=" "/>
<div class="logo">
<img src="http://fineprintnyc.com/images/blog/history-of-logos/google/google-logo.png" alt=" "/>
</div>
<span class="overlay-bg"></span>
</div>
<div class="col-4">
<img src="http://www.freebiesgallery.com/wp-content/uploads/2013/08/light-blue-background-3.jpg" class="bg"
alt=" "/>
<div class="logo">
<img src="http://fineprintnyc.com/images/blog/history-of-logos/google/google-logo.png" alt=" "/>
</div>
<span class="overlay-bg"></span>
</div>
<div class="col-4">
<img src="http://www.freebiesgallery.com/wp-content/uploads/2013/08/light-blue-background-3.jpg" class="bg"
alt=" "/>
<div class="logo">
<img src="http://fineprintnyc.com/images/blog/history-of-logos/google/google-logo.png" alt=" "/>
</div>
<span class="overlay-bg"></span>
</div>
</div>
Upvotes: 1