2014-01-14 3 views
2

У меня есть функция создания холста, и я не могу заставить ее работать правильно.jQuery off canvas not working

Он не скользит назад влево при попытке закрыть его. Он отлично работает, когда я использую 250 пикселей вместо 90%, но мне нужен процент!

http://jsfiddle.net/3Wdby/

$(document).ready(function() { 
    $('#push, #close').click(function() { 
     var $navigacia = $('body, #slide-menu'), 
      val = $navigacia.css('left') === '90%' ? '0px' : '90%'; 
     $navigacia.animate({ 
      left: val 
     }, 300)  
    });  
}); 

ответ

4

переключатель, если заявление, чтобы проверить, если это 0px вместо 90%, потому что, когда вы смотрите, если это 90% он вернется в пикселах

$(document).ready(function() { 
    $('#push, #close').click(function() { 
     console.log($('body, #slide-menu').css('left')); 
     var $navigacia = $('body, #slide-menu'), 
      val = $navigacia.css('left') === '0px' ? '90%' : '0px'; 
     $navigacia.animate({ 
      left: val 
     }, 300) 
    }); 
}); 

DEMO

+1

большое спасибо, я знал, что должно быть простое решение. Не удалось выяснить, куда идти ... – SamotnyPocitac

+0

У меня есть еще один вопрос. Я реализовал это и в Chrome, первый щелчок не работает. Он переключается на второй щелчок после загрузки страницы – SamotnyPocitac

1

Вы не можете проверить проценты, вместо этого вы должны инвертировать оператор if:

val = $navigacia.css('left') === '0px' ? '90%' : '0'; 

Он проверяет, равна ли ширина 0, если она равна 0, она устанавливает ее на 90%. Когда вы нажмете следующий клик, потому что ширина не равна 0, он устанавливает значение 0.