aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/javascripts/octopress.js10
1 files changed, 8 insertions, 2 deletions
diff --git a/source/javascripts/octopress.js b/source/javascripts/octopress.js
index 961fa461..8e7c1a4f 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;