blog/source/javascripts/octopress.js

47 lines
1.2 KiB
JavaScript
Raw Normal View History

window.addEvent('domready', function() {
2009-11-12 17:57:01 +00:00
codeblocks = $$('div.highlight');
codeblocks.each(addExpander);
});
function addExpander(div){
new Element('span',{
html: 'expand »',
'class': 'pre_expander',
'events': {
'click': function(){
toggleExpander(this);
}
}
}).inject(div, 'top');
}
function toggleExpander(expander){
var html = '';
var expanderPos = expander.getPosition().y;
2009-11-12 17:57:01 +00:00
if($('main').toggleClass('expanded').hasClass('expanded'))
html = '« contract';
2009-11-12 17:57:01 +00:00
else
html = 'expand »';
$$('div.highlight span.pre_expander').each(function(span){
2009-11-12 16:28:30 +00:00
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);
2009-11-12 17:57:01 +00:00
}
function enableCompressedLayout(codeblocks){
if(!codeblocks.length) return;
new Element('span',{
html: 'Collapse layout',
'id': 'collapser',
'events': {
'click': function(){
if($('page').toggleClass('collapsed').hasClass('collapsed'))
this.set('html','Expand layout');
else
this.set('html','Collapse layout');
}
}
}).inject($('main'), 'top');
}