User:Omegatron/monobook.js/floatingSidebar.js

// Floating sidebar

// Originally at http://meta.wikimedia.org/wiki/Help:User_style/floating_quickbar

// Restructure the page so that the sidebar can be floated

$(function () {

content = document.getElementById("column-content"); // Find the main content column

// Move the footer into the main column so that it scrolls

footer = document.getElementById("footer"); // Find the footer

footer.parentNode.removeChild(footer); // Remove the footer from the global wrapper

content.appendChild(footer); // Place footer at the end of the content column;

// Move the tabs into the main column so that they scroll

tabs = document.getElementById("p-cactions"); // Find the top tab list

tabs.parentNode.removeChild(tabs); // Remove the tab list from the side column

content.insertBefore(tabs,content.firstChild); // Place tab list at the beginning of the content column

// Move the personal links into the main column so that they scroll

personal = document.getElementById("p-personal"); // Find the personal links list

personal.parentNode.removeChild(personal); // Remove the personal links list from the side column

content.insertBefore(personal,content.firstChild); // Place personal links list at the beginning of the content column

});

// This CSS should be hidden from older versions of IE using javascript instead of the attribute selector?

// Include style sheet inline so that script is self-contained:

mw.util.addCSS(

" /* Fix the sidebar's position while you scroll */ "+

' div[id=column-one] { /* Using the attribute selector hides this from IE */'+

' position: fixed; '+

' height: 100%; /* If you shrink the browser too small, the */ '+

' overflow: auto; /* side column will become scrollable, so stuff */ '+

' z-index: 2; /* is always accessible, albeit ugly */ '+

' } '+

' '+

' div#p-logo { /* Make logo inline with other divs */ '+

' position: static; '+

' } '+

' '+

' div#column-one { /* Sidebar column start at the top screen edge */ '+

' padding-top: 0; '+

' } '+

' '+

' div#p-lang .pBody ul{ /* Sets the language box to a fixed height and */ '+

' height: 6em; /* scrollable if too long to fit on screen */ '+

' overflow: auto; '+

' } '+

' '+

' /* Fix the background image, too, so it looks nice as you scroll */ '+

' body { '+

' background-attachment: fixed; '+

' } '+

' '+

" /* Fix the footer so it looks nice and doesn't overlap the sidebar */ "+

' div#footer { '+

' margin-left: 13.6em; '+

' border-left: solid 1px rgb(250, 189, 35); '+

' -moz-border-radius-topleft: 1em; '+

' -moz-border-radius-bottomleft: 1em; '+

' } '

);