View Full Version : Forum Home Enhancements - Floating Top Bar script [register]

25 Sep 2007, 18:57
Description: This script displays a floating bar that sits at the top of the window, gliding gently back into view when the page is scrolled. Regular HTML content can be shown inside of it. And to make the bar less intrusive, once it is closed (by clicking on the "x"), the bar can be set to dismiss for the entire duration of the browser session, by using cookies. Reloading the page won't bring it back. Sites like About.com use something similar to display important tidbits of information.

Step 1: Add the following code into the Template: headinclude :

<!-- / CSS Stylesheet -->

<if condition="$show['registerbutton']">
<style type="text/css">
border: 1px solid black;
padding: 2px;
background-color: lightyellow;
width: 620px;
visibility: hidden;
z-index: 100;
<script type="text/javascript">
var persistclose=0 //set to 0 or 1. 1 means once the bar is manually closed, it will remain closed for browser session
var startX = 30 //set x offset of bar in pixels
var startY = 5 //set y offset of bar in pixels
var verticalpos="fromtop" //enter "fromtop" or "frombottom"
function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
return returnvalue;
function closebar(){
if (persistclose)
function staticbar(){
var ns = (navigator.appName.indexOf("Netscape") != -1) || window.opera;
var d = document;
function ml(id){
var el=d.getElementById(id);
if (!persistclose || persistclose && get_cookie("remainclosed")=="")
el.x = startX;
if (verticalpos=="fromtop")
el.y = startY;
el.y = ns ? pageYOffset + innerHeight : iecompattest().scrollTop + iecompattest().clientHeight;
el.y -= startY;
return el;
if (verticalpos=="fromtop"){
var pY = ns ? pageYOffset : iecompattest().scrollTop;
ftlObj.y += (pY + startY - ftlObj.y)/8;
var pY = ns ? pageYOffset + innerHeight - barheight: iecompattest().scrollTop + iecompattest().clientHeight - barheight;
ftlObj.y += (pY - startY - ftlObj.y)/8;
ftlObj.sP(ftlObj.x, ftlObj.y);
setTimeout("stayTopLeft()", 10);
ftlObj = ml("topbar");
if (window.addEventListener)
window.addEventListener("load", staticbar, false)
else if (window.attachEvent)
window.attachEvent("onload", staticbar)
else if (document.getElementById)

Step 2: Insert the following code in the Template: navbar :

<!-- / PAGENAV POPUP -->

<if condition="$show['registerbutton']">
<div id="topbar">
<a href="" onClick="closebar(); return false"><img src="close.gif" border="0" /></a>
<a href="register.php$session[sessionurl_q]" rel="nofollow">$vbphrase[register]</a>

Step 3: Finally, this script uses an image to close the bar:


Please make sure you click INSTALL if you like it.

26 Sep 2007, 14:10
thanks. do you have a screenshot or demo site where we can see it in action.

26 Sep 2007, 14:45
here is a screenshot:


Lizard King
26 Sep 2007, 17:01
It is not a really good approach to add all these lines to headinclude template. You can easily create a js file and call it via headinclude template and use the css within additional css.

26 Sep 2007, 20:15
After I install a modification I always go to view it in as many types of browsers as possible, to make sure that it is compliant with each of them. When I went to view my site in MSN Explorer I was shocked to see that the floating top bar is actually see-through:


I think that the CSS needs a bit of work in order to make it more cross-browser compliant/friendly.

06 Oct 2007, 09:14
Thanks Dude

30 Oct 2007, 17:54
It is not a really good approach to add all these lines to headinclude template. You can easily create a js file and call it via headinclude template and use the css within additional css.

I agree, soon I will upgrade it to be more elastic

05 Nov 2007, 18:09
The X shows up for everyone but me LOL I just took it out got tired of seeing it float around but a good idea ;)

13 Nov 2007, 00:59
why you posting even withoute testing ? :S ..

18 Nov 2007, 15:38
thanks ;)
click install

03 Dec 2007, 00:09
thanks works great but is there any way to see the register button with out having the mouse over it

27 Jan 2008, 06:00
Very Good, Thanks xD

12 Feb 2013, 01:31
Trying to get this to work on an IPB forum.

Anyone know how to force the bar to always display on top?

It keeps sliding behind other content blocks on IPB.

Edit, nevermind, got it. Needed to add a z-index: 1; to the CSS.