Scroll to reveal on switches as well

This commit is contained in:
Scott Lahteine 2015-02-06 18:09:14 -08:00
parent 9c0adae3cd
commit 37c43a7ab3

View file

@ -399,6 +399,9 @@ var configuratorApp = (function(){
this.log(newline, 2); this.log(newline, 2);
$c.text(txt); $c.text(txt);
// Scroll to reveal the define
this.scrollToDefine(name);
}, },
/** /**
@ -449,6 +452,17 @@ var configuratorApp = (function(){
$c.text(txt); $c.text(txt);
// Scroll to reveal the define
this.scrollToDefine(name);
},
/**
* Scroll the field to show a define
*/
scrollToDefine: function(name, always) {
this.log('scrollToDefine:'+name,4);
var $elm = $('#'+name), inf = $elm[0].defineInfo, $c = $(inf.field);
// Scroll to the altered text if it isn't visible // Scroll to the altered text if it isn't visible
var halfHeight = $c.height()/2, scrollHeight = $c.prop('scrollHeight'), var halfHeight = $c.height()/2, scrollHeight = $c.prop('scrollHeight'),
textScrollY = inf.lineNum * scrollHeight/(inf.adv ? total_config_adv_lines : total_config_lines) - halfHeight; textScrollY = inf.lineNum * scrollHeight/(inf.adv ? total_config_adv_lines : total_config_lines) - halfHeight;
@ -458,7 +472,7 @@ var configuratorApp = (function(){
else if (textScrollY > scrollHeight) else if (textScrollY > scrollHeight)
textScrollY = scrollHeight - 1; textScrollY = scrollHeight - 1;
if (Math.abs($c.prop('scrollTop') - textScrollY) > halfHeight) if (always == true || Math.abs($c.prop('scrollTop') - textScrollY) > halfHeight)
$c.animate({ scrollTop: textScrollY < 0 ? 0 : textScrollY }); $c.animate({ scrollTop: textScrollY < 0 ? 0 : textScrollY });
}, },