From 0ac4eca1d49103b17d1dc2a37e1c6c6f7845ef9d Mon Sep 17 00:00:00 2001 From: B Mathis Date: Thu, 12 Nov 2009 13:23:01 -0600 Subject: [PATCH] expanding code now adjusts the scroll position to accommodate for differently wrapped text --- source/javascripts/octopress.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/source/javascripts/octopress.js b/source/javascripts/octopress.js index 961fa46..8e7c1a4 100644 --- a/source/javascripts/octopress.js +++ b/source/javascripts/octopress.js @@ -9,13 +9,14 @@ function addExpander(div){ 'class': 'pre_expander', 'events': { 'click': function(){ - toggleExpander(); + toggleExpander(this); } } }).inject(div, 'top'); } -function toggleExpander(){ +function toggleExpander(expander){ var html = ''; + var expanderPos = expander.getPosition().y; if($('main').toggleClass('expanded').hasClass('expanded')) html = '« contract'; else @@ -23,6 +24,11 @@ function toggleExpander(){ $$('div.highlight span.pre_expander').each(function(span){ span.set('html',html); }); + fixScroll(expander, expanderPos); +} +function fixScroll(el, position){ + pos = el.getPosition().y - position; + window.scrollTo(window.getScroll().x ,window.getScroll().y + pos); } function enableCompressedLayout(codeblocks){ if(!codeblocks.length) return;