Good day!
I am trying to hide and show divs with slide animation. My code is as follows:
<style>
div.bigBox
{
background-color:white;
width:100px;
height:125px;
overflow:hidden;
}
div.try{
background-color:green;
width:100px;
height:125px;
float: left;
}
div.try2{
background-color:yellow;
width:100px;
height:125px;
}
}
</style>
<script language="JavaScript" src="js/jquery-1.6.1.js"></script>
<script src="http://ui.jquery.com/latest/ui/jquery.effects.core.js"></script>
<script src="http://ui.jquery.com/latest/ui/jquery.effects.slide.js"></script>
</head>
<body>
<div class="bigBox">
<div class="try">
<p id="haha">CLICK THIS</p>
<p>This is a demonstration of jQuery SimpleDialog.</p>
</div>
<div class="try2">
<h3 id="test2">CLICK THIS</h3>
<p>This is a demonstration of jQuery SimpleDialog.</p>
</div>
</div>
<script>
$('#haha').click(function () {
alert("test");
$('.try').hide("slide", { direction: "left" }, 1000);
$('.try2').show("slide", { direction: "right" }, 1000);
});
</script>
The problem is the transition of one box to another. It doesn't flow very smoothly. I want to hide and at the same time show (like tailing the box to be hidden). Please help. Thanks
There are probably a dozen ways to skin this cat, but here's what I did:
Fiddle: http://jsfiddle.net/GregP/CV7fd/1/
I didn't methodically test my theory, but I THINK it was the floating that was causing your problem.
No point showing the "switching the order of the .try and .try2 boxes" markup or the JavaScript (which is untouched), but here's the updated CSS:
div.bigBox {
background-color:transparent;
width:100px;
height:125px;
position: relative;
}
.try, .try2{
width:100px;
height:125px;
position: absolute;
}
.try {
background-color:green;
}
.try2{
background-color:yellow;
}
(shoot, could've used the width: and height: on bigBox, too. Ah well, you get the point, no need for me to be pedantic!)