Reputation: 61
I have an html tag, "loginBox" (<loginBox> ... </loginBox>
) that drops down when a user selects an option. However, before that it is hidden with display:none
. How can I make it drop down, considering that before I do that I have to declare it display:block
and it will fully appear? The present code has it just appear and disappear, and it would look better with a slide-down effect.
The CSS
loginBox {
background:#424242;
font-size:16px;
color:#DEDEDE;
line-height:25px;
width:335px;
padding:15px;
padding-left:50px;
margin-top: 9px;
padding-bottom:25px;
overflow-y:hidden;
display:block;
}
.collapse {
display:none;
}
The Javascript/jQuery
($(this).hasClass('selected')) { // the element that needs to be selected
$("loginBox").addClass('collapse')
} else { /*select*/
$("loginBox").removeClass("collapse");
}
Upvotes: 3
Views: 4797
Reputation: 9664
Another Pure CSS solution using :checked
pseudo selector for checkbox
JS Fiddle
#slider {
-webkit-transition: all .5s ease-in-out;
transition: all .5s ease-in-out;
background-color:#090;
color:white;
width:300px;
height:80px;
max-height:0;
overflow-y:hidden;
margin-top:10px;
}
#toggle:checked ~ #slider {
max-height: 80px;
}
<input id="toggle" type="checkbox"><label for="toggle">Show Me</label>
<div id="slider">
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</div>
Upvotes: 1
Reputation: 10260
You can do this without jquery by making use of css transitions transition: all 0.5s ease-in-out;
See this DEMO
Upvotes: 2
Reputation: 3760
Is this what you want?
$(document).ready(function(){
$("loginbox").addClass("collapse");
$(":checkbox").change(function(){
if($(this).is(":checked")){
//$("loginBox").removeClass("collapse");
$("loginBox").slideDown();
}
else
{
//$("loginBox").addClass("collapse");
$("loginBox").slideUp();
}
});
});
Upvotes: 3