Ниже пример моего "говнокода", работает везде, в том числе и в десктопном сафари, но на iphone анимация работает как хочет, то сработает полностью, то изменится только один блок, то блок скроется - то нет, короче как-то так
$("#show-left-menu").click(function(){
var block = $("#left-sidebar"),
button = $(this);
if(button.attr('title') == 'Раскрыть меню'){
button.attr('title', 'Скрыть меню');
button.find('.line-hamburger:nth-child(2)').css('display','none');
button.find('.line-hamburger:nth-child(1)').css('transform','translate3d(0,10px,0) rotate(45deg)');
button.find('.line-hamburger:nth-child(3)').css('transform','translate3d(0px, 6px, 0px) rotate(-45deg)');
block.css("transform",'translate3d(210px, 0px, 0px)');
}
else if(button.attr('title') == 'Скрыть меню'){
button.attr('title', 'Раскрыть меню');
button.find('.line-hamburger:nth-child(2)').css('display','block');
button.find('.line-hamburger:nth-child(1)').css('transform','translate3d(0,0,0) rotate(0)');
button.find('.line-hamburger:nth-child(3)').css('transform','translate3d(0,0,0) rotate(0)');
block.css("transform",'translate3d(0px, 0px, 0px)');
}
});