expanding code now adjusts the scroll position to accommodate for differently wrapped text

This commit is contained in:
B Mathis 2009-11-12 13:23:01 -06:00
parent a23a4734b4
commit 0ac4eca1d4
1 changed files with 8 additions and 2 deletions

View File

@ -9,13 +9,14 @@ function addExpander(div){
'class': 'pre_expander', 'class': 'pre_expander',
'events': { 'events': {
'click': function(){ 'click': function(){
toggleExpander(); toggleExpander(this);
} }
} }
}).inject(div, 'top'); }).inject(div, 'top');
} }
function toggleExpander(){ function toggleExpander(expander){
var html = ''; var html = '';
var expanderPos = expander.getPosition().y;
if($('main').toggleClass('expanded').hasClass('expanded')) if($('main').toggleClass('expanded').hasClass('expanded'))
html = '« contract'; html = '« contract';
else else
@ -23,6 +24,11 @@ function toggleExpander(){
$$('div.highlight span.pre_expander').each(function(span){ $$('div.highlight span.pre_expander').each(function(span){
span.set('html',html); 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){ function enableCompressedLayout(codeblocks){
if(!codeblocks.length) return; if(!codeblocks.length) return;