Some time ago, I wrote an article about the Image caption hover effect. where I covered the basics about the Image caption hover effect. here, In this article, we are going to explore the — Image hover caption sliding effect. and I’m going to show, how to create the different kinds of Image hover sliding caption effects.
Image hover caption effects are a very nice way to represent the content over the images. and these days we can see many developers implement these effects in their websites.
Before digging the code, Let me explain the basic theme about the Image hover caption sliding effect, whenever the visitor hovers over the image, we see the sliding content moving over the image.
Let’s start coding
- First, consider a parent div element with
id:wrapper
and Inside that consider a 8 child div elements withclass:image-container.
- Inside each child div element, consider an image and one more sub-child div element and each sub-child div element has two different classes, in which one class being the same for all sub-child div elements and other class being different for all sub-child div elements.
- Now style the parent div element, by setting
width:1080px;
andmargin:50px auto;
. so that the content lies in the middle of the browser.#wrapper{ width: 1080px; margin: 50px auto; }
- Now style the all child div elements, by setting its
width:250px;
,height:200px;
,float:left;
andposition:relative;
so that we get the control over sub-child div elements..image-container{ width: 250px; height: 200px; position: relative; cursor: pointer; float: left; margin: 10px; }
- Now style the image, by setting its width and height equal to 100% and
position:absolute;
so that it lies within the parent div element..image-container img{ width: 100%; height: 100%; position: absolute; }
- Now style the sub-child div elements, here I’m going to style the first class that is
class:image-caption
which is same for all sub-child div elements and another class is different for all sub-child div elements. which is used for sliding caption effect..image-container .image-caption { width: 100%; height: 100%; position: absolute; background: rgba(0, 0, 0, 0.6); font-family: cursive; text-align: center; }
For achieving the sliding caption effect, we have to target the sub-child div elements, second class. As I mentioned above each sub-child div element has two different classes, in which one class being the same for all sub-child div elements and other class being different for all sub-child div elements.
Left sliding caption effect
- To achieve the Left sliding caption effect, style the sub-child div element’s second class that is
class:caption-1
, Now set the sliding caption toleft: -260px;
from its initial position and then whenever we hover over the.image-container
it should return back to its initial position, to achieve that set theleft:0;
and use the transition effect for the sliding caption..image-container .caption-1 { left: -260px; transition: all 0.5s; } .image-container:hover .caption-1 { left: 0; transition: all 0.5s; }
Top sliding caption effect
- To achieve the Top sliding caption effect, style the sub-child div element’s second class that is
class:caption-2
, Now set the sliding caption totop:-210px;
from its initial position and then whenever we hover over the.image-container
it should return to its initial position. to achieve that set thetop:0;
and use the transition effect for the sliding caption..image-container .caption-2 { top: -210px; transition: all 0.5s; } .image-container:hover .caption-2 { top: 0; transition: all 0.5s; }
bottom sliding caption effect
- To achieve the Bottom sliding caption effect, style the sub-child div element’s second class that is
class:caption-3
, Now set the sliding caption tobottom: -210px;
from its initial position and then whenever we hover over the.image-container
it should return to its initial position. to achieve that set thebottom:0;
and use the transition effect for the sliding caption..image-container .caption-3 { bottom: -210px; transition: all 0.5s; } .image-container:hover .caption-3 { bottom: 0; transition: all 0.5s; }
Right sliding caption effect
- To achieve the Right sliding caption effect, style the sub-child div element’s second class that is
class:caption-4
, Now set the sliding caption toright: -260px;
from its initial position and then whenever we hover over the.image-container
it should return to its initial position. to achieve that set theright:0;
and use the transition effect for the sliding caption..image-container .caption-4 { right: -260px; transition: all 0.5s; } .image-container:hover .caption-4 { right: 0; transition: all 0.5s; }
Top-left sliding caption effect
- To achieve the Top-left sliding caption effect, style the sub-child div element’s second class that is
class:caption-5
, Now set the sliding caption totop: -210px;
left: -260px;
from its initial position and then whenever we hover over the.image-container
it should return to its initial position. to achieve that set thetop: 0;
left: 0;
and use the transition effect for the sliding caption..image-container .caption-5 { left: -260px; top: -210px; transition: all 0.5s; } .image-container:hover .caption-5 { left: 0; top: 0; transition: all 0.5s; }
Top-right sliding caption effect
- To achieve the Top-right sliding caption effect, style the sub-child div element’s second class that is
class:caption-6
, Now set the sliding caption totop: -210px;
right: -260px;
from its initial position and then whenever we hover over the.image-container
it should return to its initial position. to achieve that set thetop: 0;
right: 0;
and use the transition effect for the sliding caption..image-container .caption-6 { right: -260px; top: -210px; transition: all 0.5s; } .image-container:hover .caption-6 { right: 0; top: 0; transition: all 0.5s; }
Bottom-left sliding caption effect
- To achieve the Bottom-left sliding caption effect, style the sub-child div element’s second class that is
class:caption-7
, Now set the sliding caption tobottom: -210px;
left: -260px;
from its initial position and then whenever we hover over the.image-container
it should return to its initial position. to achieve that set thebottom: 0;
left: 0;
and use the transition effect for the sliding caption..image-container .caption-7 { left: -260px; bottom: -210px; transition: all 0.5s; } .image-container:hover .caption-7 { left: 0; bottom: 0; transition: all 0.5s; }
Bottom-right sliding caption effect
- To achieve the Bottom-right sliding caption effect, style the sub-child div element’s second class that is
class:caption-8
, Now set the sliding caption tobottom: -210px;
right: -260px;
from its initial position and then whenever we hover over the.image-container
it should return to its initial position. to achieve that set thebottom: 0;
right: 0;
and use the transition effect for the sliding caption..image-container .caption-8 { right: -260px; bottom: -210px; transition: all 0.5s; } .image-container:hover .caption-8 { right: 0; bottom: 0; transition: all 0.5s; }
This is how the sliding caption effect works without overflow:hidden;
property, so set the overflow:hidden;
to .image-container
. so that it hides the content which is flowing out of the image-continer
.
.image-container{ over-flow: hidden; }
Check out the demo.
See the Pen image hover caption sliding effect by rajeshdn (@cool_lazyboy) on CodePen.0