jquery - Running a toggle command faster when something is visible? -
my aim run faster once user can see it. explain, once user clicks menu button open, fine when user clicks close menu, should close menu down faster. code not want fire second 'else if' part of code.
here code :
$(document).ready( function() { if ( !$(".toplist1").is(":visible") ) { $('.menubutton').click(function() { $( ".toplist1" ).toggle("slide", {direction: "down"}, 1000); $( ".toplist2" ).delay(800).toggle("slide", {direction: "down"}, 800); $( ".leftlist1" ).toggle("slide", {direction: "left"}, 1000); $( ".leftlist2" ).delay(800).toggle("slide", {direction: "left"}, 1000); }); } else if ( $(".toplist1").is(":visible") ) { $('.menubutton').click(function() { $( ".toplist1" ).toggle("slide", {direction: "down"}, 800); $( ".toplist2" ).toggle("slide", {direction: "down"}, 800); $( ".leftlist1" ).toggle("slide", {direction: "left"}, 800); $( ".leftlist2" ).toggle("slide", {direction: "left"}, 800); }); } }); update:
heres jsfiddle link, css not right on there can idea, links open want them close @ same time! - end result might not toggle close fade out!
the issue if statement being checked on initial load. evaluates true, top half of code being triggered. reason works @ because toggle smart, top half both expands , collapses submenus.
this code works:
$(document).ready( function() { var menuclosed = true; $('.menubutton').click(function() { if (menuclosed) { menuclosed = false; $( ".toplist1" ).toggle("slide", {direction: "down"}, 1000); $( ".toplist2" ).delay(800).toggle("slide", {direction: "down"}, 800); $( ".leftlist1" ).toggle("slide", {direction: "left"}, 1000); $( ".leftlist2" ).delay(800).toggle("slide", {direction: "left"}, 1000); } else { menuclosed = true; $( ".toplist1" ).toggle(0); $( ".toplist2" ).toggle(0); $( ".leftlist1" ).toggle(0); $( ".leftlist2" ).toggle(0); } }); });
Comments
Post a Comment