Is it possible to slide a div up (closing it) but not completely ?
I mean, slide up but leave a little of that div displayed, is that possible ?
Thanks in advance, mem
Something like this may work:
$("#div").toggle(
function(){
$("#div").animate( { height:"500px" }, { queue:false, duration:500 });
},
function(){
$("#div").animate( { height:"50px" }, { queue:false, duration:500 });
});
Instead of the 500px
it can just be the original size of the div, and the 30px
can be however much you want to show when it's meant to be hidden.
Here's a fiddle showing that it can allow different heights if declared in a variable. And fading out after animation shouldn't be a problem.
http://jsfiddle.net/Skooljester/HdQSX/
var divTest = $("#test").height();
$("#test").toggle(
function(){
$("#test").animate({ height: divTest + 'px' }, { queue: false, duration: 500 });
},
function(){
$("#test").animate({ height:'50px' }, { queue: false, duration: 500 });
});
#test {
display: block;
background: #FF0000;
height: 500px;
width: 300px;
}
<div id="test">Test</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
I don't recommend using jQuery's animate method because it's sometimes buggy in some browsers. Animate the slide with CSS transitions is a better choice (according to me), by setting the div height or max-height.
CSS:
.expandable {
max-height: 3em;
overflow: hidden;
transition: max-height .3s;
}
on click, set max-height with jQuery:
$(.someSelector).css('max-height', expandedHeight);
Then remove the styling when it's clicked again:
$(.someSelector).attr('style', '');
You can look at this demo example
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With