У меня есть меню шириной 100%, тогда я проверяю ширину и отбрасываю ее с экрана на эту сумму. То, что я хотел бы достичь, - это эффект margin margin.
У меня есть это, что, очевидно, не возвращается. Я работаю в em.
var em = $(window).width() / parseFloat($("body").css("font-size"));
emEm = em+'em'; //change px to em and add em unit i.e. XXem
$('nav').width(emEm); //makes nav full width in em's
$('nav').css('margin-left','-'+emEm); //throws nav off screen
$('.menu').click(function() {
$('nav').animate({
marginLeft: '0' //bring nav back on screen
}, 300);
});
Есть ли способ переключить функцию меню?
благодаря
Просто выполните -100%
и 0
соответственно:
http://jsfiddle.net/DerekL/5xrGu/
$('nav').animate({
marginLeft: '-100%'
}, 300);
$('.menu').click(function() {
$('nav').toggle(function() {
$('nav').animate({marginLeft: "0"}, 300},
function() {
$('nav').animate({marginLeft: "100%"}, 300});
Отредактировано сообщение. Посмотри на это. Я знаю, что это можно сделать быстрее и короче, но пока это будет работать.
<script>
var clicked = false,
margin_value;
$('#on-click-id').click(function(){
$('nav').stop(); //Stop the animation on each click
if(clicked == false){
margin_value = '+=10px';
//Set clicked to true so the next click will be decreasing the margin
clicked == true;
} else if (clicked == false){
margin_value = '-=10px';
//Set clicked to false so the next click will be increasing the margin
clicked = false;
}
$('nav').animate({
marginLeft: margin_value //bring nav back on screen
}, 300);
})
</script>