 I had to create a smooth slide effect on two boxes using jQuery and its
I had to create a smooth slide effect on two boxes using jQuery and its animate() method. The basic HTML structure is as follows:
<div id="container">
    <div id="box-a"></div>
    <div id="box-b"></div>
</div>
And here are the attached styles:
#container {
 width: 300px;
 height: 200px;
 background: #ccc;
 position: relative;
 top: 12px;
 overflow: hidden;
}
#box-a {
 width: 300px;
 height: 200px;
 float: left;
 position: relative;
 background: orange;
}
#box-b {
 width: 0px;
 height: 200px;
 float: left;
 position: relative;
 background: gray;
}
Also the related jQuery code is pretty straightforward:
$(document).ready(function() {
    $('#run').click(function() {
    
        $('#box-a').animate({position: 'absolute', left: '0px', width: '0px'}, 'fast'); // IE8- can't handle position: absolute here
        $('#box-b').animate({width: '300px'}, 'fast');
 
 return false;
    
    
    });
});
To create our sliding effect we first reduce the width of the first box to 0 and then we set the width of the second box to a given length.
Notice that the first box has been absolutely positioned. That's the tricky part for Internet Explorer 8 and lower: it can't handle the vertical offset of the first box and return a JavaScript error (error code 0). Simply remove the declaration position: absolute and you get the desired result even on IE. You can see a live test here.