Reputation: 179
I have created a function I want a div to increase height and opacity and when click again it should return to it's original state so I used toggle function to do that now the problem is that when page loads the button get disappears
$(document).ready(function() {
$('#cm_now').toggle(function() {
$('.search_bx_ar').css({
'opacity': '1'
});
$('.search_bx_ar').css({
'height': '40px'
});
});
});
.search_bx_ar {
position: relative;
margin: 0 0 10px 0;
width: 100%;
opacity: 0;
height: 0px;
transition: ease-in-out all .5s;
-webkit-transition: ease-in-out all .5s;
-moz-transition: ease-in-out all .5s;
}
.compare_sr_btn {
float: right;
width: 25%;
padding-left: 15px;
margin: 15px 0 10px 0;
}
.compare_sr_btn>#cm_now {
background-color: #2b7f7f;
color: #fff;
border: none;
height: 40px;
line-height: 40px;
width: 100%;
font-size: 12px;
text-transform: uppercase;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="compare_sr_btn">
<input type="button" id="cm_now" value="Compare Now" />
</div>
<div class="search_bx_ar">
<input class="form-control top_search" id="data_mid" autocomplete="off" onkeyup="autocompl();" type="text" placeholder="Search">
</div>
Upvotes: 0
Views: 1825
Reputation: 3637
Toggle doesn't do what you seem to think it does. Toggle is used to hide or show an element. Since you run the function as soon as the page is loaded, the button is immediately hidden with a nice little animation.
See if this does what you want:
var buttonState = 0;
$(document).ready(function() {
$('#cm_now').click(function() {
if(buttonState == 0) {
$('.search_bx_ar').css({'opacity': '1'});
$('.search_bx_ar').css({'height' : '40px'});
} else {
$('.search_bx_ar').css({'opacity': '0.5'});
$('.search_bx_ar').css({'height' : '20px'});
}
buttonState = 1 - buttonState; //a clever way to toggle between 0 and 1
});
});
.search_bx_ar {
position: relative;
margin: 0 0 10px 0;
width: 100%;
opacity: 0;
height: 0px;
transition: ease-in-out all .5s;
-webkit-transition: ease-in-out all .5s;
-moz-transition: ease-in-out all .5s;
}
.compare_sr_btn {
float: right;
width: 25%;
padding-left: 15px;
margin: 15px 0 10px 0;
}
.compare_sr_btn > #cm_now {
background-color: #2b7f7f;
color: #fff;
border: none;
height: 40px;
line-height: 40px;
width: 100%;
font-size: 12px;
text-transform: uppercase;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="compare_sr_btn">
<button id="cm_now">Compare Now</button>
</div>
<div class="search_bx_ar">
<input class="form-control top_search" id="data_mid" autocomplete="off" onkeyup="autocompl();" type="text" placeholder="Search">
</div>
Upvotes: 2
Reputation: 4150
Here, you have not added any click handler to [toggle.][2]
You are just calling the toggle on document ready which will be called immediately after dom loaded.
The toggle() method toggles between hide() and show() for the selected elements.
This method checks the selected elements for visibility. show() is run if an element is hidden. hide() is run if an element is visible - This creates a toggle effect.
SNIPPET
$(document).ready(function() {
$('#cm_now').click(function() {
$('#cm_now').toggle(function() {
$('.search_bx_ar').css({
'opacity': '1'
});
$('.search_bx_ar').css({
'height': '40px'
});
});
});
});
.search_bx_ar {
position: relative;
margin: 0 0 10px 0;
width: 100%;
opacity: 0;
height: 0px;
transition: ease-in-out all .5s;
-webkit-transition: ease-in-out all .5s;
-moz-transition: ease-in-out all .5s;
}
.compare_sr_btn {
float: right;
width: 25%;
padding-left: 15px;
margin: 15px 0 10px 0;
}
.compare_sr_btn>#cm_now {
background-color: #2b7f7f;
color: #fff;
border: none;
height: 40px;
line-height: 40px;
width: 100%;
font-size: 12px;
text-transform: uppercase;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="compare_sr_btn">
<input type="button" id="cm_now" value="Compare Now" />
</div>
<div class="search_bx_ar">
<input class="form-control top_search" id="data_mid" autocomplete="off" onkeyup="autocompl();" type="text" placeholder="Search">
</div>
Upvotes: 0
Reputation: 2038
$(".cm_now").click(function() {
$('.cm_now').toggleClass("seach-animate");
});
.search_bx_ar {
position: relative;
margin: 0 0 10px 0;
width: 100%;
opacity: 0;
height: 0px;
transition: ease-in-out all .5s;
-webkit-transition: ease-in-out all .5s;
-moz-transition: ease-in-out all .5s;
}
.compare_sr_btn {
float: right;
width: 25%;
padding-left: 15px;
margin: 15px 0 10px 0;
}
.cm_now {
background-color: #2b7f7f;
color: #fff;
border: none;
height: 40px;
line-height: 40px;
width: 100%;
font-size: 12px;
text-transform: uppercase;
}
.seach-animate {
height: 10px;
opacity: 1;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="compare_sr_btn">
<input type="button" class="cm_now" value="Compare Now" />
</div>
<div class="search_bx_ar">
<input class="form-control top_search" id="data_mid" autocomplete="off" onkeyup="autocompl();" type="text" placeholder="Search">
</div>
Upvotes: 0
Reputation: 22323
You can toggle your button when it clicked .Other wise toggle and disappear after document ready.
$(document).ready(function() {
$("#cm_now").on("click", function() {
$(this).toggle(function() {
$('.search_bx_ar').css({
'opacity': '1'
});
$('.search_bx_ar').css({
'height': '40px'
});
});
});
});
.search_bx_ar {
position: relative;
margin: 0 0 10px 0;
width: 100%;
opacity: 0;
height: 0px;
transition: ease-in-out all .5s;
-webkit-transition: ease-in-out all .5s;
-moz-transition: ease-in-out all .5s;
}
.compare_sr_btn {
float: right;
width: 25%;
padding-left: 15px;
margin: 15px 0 10px 0;
}
.compare_sr_btn>#cm_now {
background-color: #2b7f7f;
color: #fff;
border: none;
height: 40px;
line-height: 40px;
width: 100%;
font-size: 12px;
text-transform: uppercase;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="compare_sr_btn">
<input type="button" id="cm_now" value="Compare Now" />
</div>
<div class="search_bx_ar">
<input class="form-control top_search" id="data_mid" autocomplete="off" onkeyup="autocompl();" type="text" placeholder="Search">
</div>
Upvotes: -1