ljlbray Posted March 31, 2010 Posted March 31, 2010 Hi. Can anyone see anything wrong immediately about the following code? I can't seem to get it to hide behind the global navigation dropdown menus on my sharepoint site :-( #pscroller1{ width: auto; height: 160px; border: 0px solid #9AC6FF; padding: 5px; background-color: white; z-index:0; } img { border: 0px solid #FFFFFF; } var pausecontent=new Array() pausecontent[1]='' pausecontent[2]='' pausecontent[0]='' pausecontent[3]='' function pausescroller(content, divId, divClass, delay){ this.content=content //message array content this.tickerid=divId //ID of ticker div to display information this.delay=delay //Delay between msg change, in miliseconds. this.mouseoverBol=0 //Boolean to indicate whether mouse is currently over scroller (and pause it if it is) this.hiddendivpointer=1 //index of message array for hidden div document.write(''+content[0]+''+content[1]+'') var scrollerinstance=this if (window.addEventListener) //run onload in DOM2 browsers window.addEventListener("load", function(){scrollerinstance.initialize()}, false) else if (window.attachEvent) //run onload in IE5.5+ window.attachEvent("onload", function(){scrollerinstance.initialize()}) else if (document.getElementById) //if legacy DOM browsers, just start scroller after 0.5 sec setTimeout(function(){scrollerinstance.initialize()}, 500) } pausescroller.prototype.initialize=function(){ this.tickerdiv=document.getElementById(this.tickerid) this.visiblediv=document.getElementById(this.tickerid+"1") this.hiddendiv=this.hiddendiv=document.getElementById(this.tickerid+"2") this.visibledivtop=parseInt(pausescroller.getCSSpadding(this.tickerdiv)) //set width of inner DIVs to outer DIV's width minus padding (padding assumed to be top padding x 2) this.visiblediv.style.width=this.hiddendiv.style.width=this.tickerdiv.offsetWidth-(this.visibledivtop*2)+"px" this.getinline(this.visiblediv, this.hiddendiv) this.hiddendiv.style.visibility="visible" var scrollerinstance=this document.getElementById(this.tickerid).onmouseover=function(){scrollerinstance.mouseoverBol=1} document.getElementById(this.tickerid).onmouseout=function(){scrollerinstance.mouseoverBol=0} if (window.attachEvent) //Clean up loose references in IE window.attachEvent("onunload", function(){scrollerinstance.tickerdiv.onmouseover=scrollerinstance.tickerdiv.onmouseout=null}) setTimeout(function(){scrollerinstance.animateup()}, this.delay) } pausescroller.prototype.animateup=function(){ var scrollerinstance=this if (parseInt(this.hiddendiv.style.top)>(this.visibledivtop+5)){ this.visiblediv.style.top=parseInt(this.visiblediv.style.top)-5+"px" this.hiddendiv.style.top=parseInt(this.hiddendiv.style.top)-5+"px" setTimeout(function(){scrollerinstance.animateup()}, 50) } else{ this.getinline(this.hiddendiv, this.visiblediv) this.swapdivs() setTimeout(function(){scrollerinstance.setmessage()}, this.delay) } } pausescroller.prototype.swapdivs=function(){ var tempcontainer=this.visiblediv this.visiblediv=this.hiddendiv this.hiddendiv=tempcontainer } pausescroller.prototype.getinline=function(div1, div2){ div1.style.top=this.visibledivtop+"px" div2.style.top=Math.max(div1.parentNode.offsetHeight, div1.offsetHeight)+"px" } pausescroller.prototype.setmessage=function(){ var scrollerinstance=this if (this.mouseoverBol==1) //if mouse is currently over scoller, do nothing (pause it) setTimeout(function(){scrollerinstance.setmessage()}, 100) else{ var i=this.hiddendivpointer var ceiling=this.content.length this.hiddendivpointer=(i+1>ceiling-1)? 0 : i+1 this.hiddendiv.innerHTML=this.content[this.hiddendivpointer] this.animateup() } } pausescroller.getCSSpadding=function(tickerobj){ //get CSS padding value, if any if (tickerobj.currentStyle) return tickerobj.currentStyle["paddingTop"] else if (window.getComputedStyle) //if DOM2 return window.getComputedStyle(tickerobj, "").getPropertyValue("padding-top") else return 0 } new pausescroller(pausecontent, "pscroller1", "someclass", 3000)
ljlbray Posted March 31, 2010 Author Posted March 31, 2010 oh forgot to mention. The global navigation drop down appears behind the scroller for Admins and Site Designers. Weird...
Pashers Posted April 6, 2010 Posted April 6, 2010 OK few things without looking too deep into it: #pscroller1{ ... z-index:0; } The z-index:0; is setting this layer to 0. Meaning that it will be placed behind layers which are 1+ and infront of 0 or less. Try changing the z-index to a higher number. Give me a shout if this still doesn't work. Also you might want to put semi colons at the end of the coding line. But try the z-index thing first Peter 1
ljlbray Posted April 20, 2010 Author Posted April 20, 2010 Thanks Peter, but I don't want the news ticker to appear in front of anything, the global navigation is disappearing behind the news ticker for all users that aren't site owners. But I'll have a fiddle with that bit again. Cheers for now!
Pashers Posted April 21, 2010 Posted April 21, 2010 (edited) Where is the global navigation part? If you send the global navigation I'll give it a quick look. Have you thought about making a flash file? This could do something similar. Edited April 21, 2010 by Pashers
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now