Not quite sure if this meets your requirements, but you can easily configure it as follows:
CSS
...
.slider{
...
bottom:0px;
...
}
Then, simply utilize jQuery .slideToggle() for smoother handling of open/closed states:
JS
$("#slide-link").click(function (){
$('#slider').slideToggle();
});
Check out a sample jsFiddle here
EDIT 1
Updated to toggle #slide-link along with #slider.
In essence, we animate it based on the visibility of #slider:
if(!$('#slider').is(':hidden')){
$(this).animate({
top: $('#global-container').height()-23
},500)
}else{
$(this).animate({
top: '0px'
},500)
}
EDIT 2
Here's another slightly hackier way to avoid dealing with the hidden state check each time, reducing redundancy in the .animate function:
Since $('#slider').is(':hidden') is a boolean that translates to 0 or 1, you can simplify it as:
var hid = $('#slider').is(':hidden')
$(this).animate({
top: (1-hid)*(contHeight)
},500)
Where contHeight represents the difference between #global-container height and #slide-link height.
EDIT 3 Scroll Issue
If I understand your issue correctly, when the content section is filled with a lot of text, it doesn't scroll properly within #slider and extends beyond the page without scrolling capability.
This occurs because .content lacks a fixed height, given our knowledge that the footer is 70px high, and we want .content to occupy the remaining space inside #slider without a predefined height value in its CSS. To address this dynamically in JS:
$('.content').height(contHeight-70)
You can now add:
overflow:hidden; //to prevent horizontal scroll
overflow-y:scroll; //for vertical scroll
I hope this helps clarify things.