Reply
how to set a floater to start once pixel X is reached?
Old 11-14-2005, 07:41 AM how to set a floater to start once pixel X is reached?
sallam's Avatar
Average Talker

Posts: 23
Trades: 0
Hi
I want to use this script to display a floating message that follows page scrolling, but I need it to start only when the user scrolls down to a specific potion of the page. The reason is that I have banner ads at top, occupying all the area above the fold, so I want this area clear, and the floating message (its a message for guests to register in my forum) to show starting from after that.

What code should I add to do so please?

Here is the script that I'm using:
HTML Code:
<style type="text/css">

#topbar{
position:absolute;
border: 1px solid black;
padding: 2px;
background-color: lightyellow;
width: 620px;
visibility: hidden;
z-index: 100;
}

</style>

<script type="text/javascript">

/***********************************************
* Floating Top Bar script- © Dynamic Drive (www.dynamicdrive.com)
* Sliding routine by Roy Whittle (http://www.javascript-fx.com/)
* This notice must stay intact for legal use.
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

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 = 80 //set x offset of bar in pixels
var startY = 50 //set y offset of bar in pixels
var verticalpos="frombottom" //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)
document.cookie="remainclosed=1"
document.getElementById("topbar").style.visibility="hidden"
}

function staticbar(){
	barheight=document.getElementById("topbar").offsetHeight
	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.style.visibility="visible"
		if(d.layers)el.style=el;
		el.sP=function(x,y){this.style.left=x+"px";this.style.top=y+"px";};
		el.x = startX;
		if (verticalpos=="fromtop")
		el.y = startY;
		else{
		el.y = ns ? pageYOffset + innerHeight : iecompattest().scrollTop + iecompattest().clientHeight;
		el.y -= startY;
		}
		return el;
	}
	window.stayTopLeft=function(){
		if (verticalpos=="fromtop"){
		var pY = ns ? pageYOffset : iecompattest().scrollTop;
		ftlObj.y += (pY + startY - ftlObj.y)/8;
		}
		else{
		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");
	stayTopLeft();
}

if (window.addEventListener)
window.addEventListener("load", staticbar, false)
else if (window.attachEvent)
window.attachEvent("onload", staticbar)
else if (document.getElementById)
window.onload=staticbar
</script>

<div id="topbar">
<a href="" onClick="closebar(); return false"></a>
Your content here.
</div>
sallam is offline
Reply With Quote
View Public Profile
 
 
When You Register, These Ads Go Away!
Old 11-14-2005, 09:47 AM
pipers dragon's Avatar
Extreme Talker

Posts: 190
Trades: 0
this is a complete alternate to the attempt, but maybe put it in two sperate pages, and frame them, then you can have the bottom scroll and still allow the advertisement banners to show...
pipers dragon is offline
Reply With Quote
View Public Profile
 
Old 11-14-2005, 09:55 AM
sallam's Avatar
Average Talker

Posts: 23
Trades: 0
Thanks, but I don't want to use frames.
Isn't there an event or something to use as a condition upon which the floating box starts to show up?

Last edited by sallam; 11-14-2005 at 09:59 AM..
sallam is offline
Reply With Quote
View Public Profile
 
Reply     « Reply to how to set a floater to start once pixel X is reached?
 

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off





   
RSS Feed  Feeds: RSS   JS   XML
RSS Feed  Feeds for this forum: RSS   JS   XML

 


Page generated in 0.10250 seconds with 13 queries