Я изменил ваш JSFiddle. Я тестировал его в Chrome, Firefox и IE7 +.
http://jsfiddle.net/t0nyh0/aMXRq/3/
Я немного почистил его и переместил все ваши "состояния" в классы. При прокрутке он просто использует JQuery для добавления и удаления классов на основе позиции прокрутки.
Обратите внимание, что анимация отсутствует, если вы хотите анимировать ее, вы можете использовать переходы классов для анимации. Подробнее здесь: http://docs.jquery.com/UI/Effects/ClassTransitions.
Что касается входа в полный режим при нажатии клавиш, вы можете снова создать класс «расширения» и применить его при нажатии клавиш. Затем вы можете структурировать свой CSS следующим образом:
.minState3.expand { }
и снова показать кнопку
.minState3.expand button { display:block; }
Делая это таким образом, вы можете гибко определять, как это выглядит на основе различных состояний.