Announcements Widget For Blogger Blogs

announcement widgetAgain yet another MBT release of a useful blogger widget with scrolling headline links. The moment you hover the cursor on the links the scrolling stops and pauses and you can then read the headlines. These headlines can be a blog update notice, announcement or links to your featured posts. You can use it in million of ways. I found the script on dynamic drive and edited the code with some more colours and images to make it completely compatible with blogger blogs. It is several steps ahead of marquee effect because this widget uses some JavaScript to bring the dynamic effect. Again it is a one-step installation process. Please see the demo first,

Live Demo

Add Scrolling Headline Widget to your Blogs

  1. Go To Blogger > Design
  2. Choose HTML/JavaScript Widget
  3. Paste the following code inside it,

<style type="text/css">

/*Example CSS for the two demo scrollers*/

#pscroller2{
background:url(http://4.bp.blogspot.com/-7ZFQXCvcnjQ/TlfjPMxiBJI/AAAAAAAAEzM/jrV-qvI_xqM/s400/updates1.gif) no-repeat top left;
width: 430px;
height: 20px;
border: 1px solid #ddd;
padding: 3px 3px 3px 40px;
margin:10px 0;
}

#pscroller2 a{
text-decoration: none;
color:#0080ff;
}

#pscroller2 a:hover{
text-decoration: underline;
}

.someclass{
}

</style>

<script type="text/javascript">

/*Example message arrays for the two demo scrollers*/


var pausecontent2=new Array()
pausecontent2[0]='<a href="#">HEADLINE TEXT</a>'
pausecontent2[1]='<a href="#">HEADLINE TEXT</a>'
pausecontent2[2]='<a href="#">HEADLINE TEXT</a>'
pausecontent2[3]='<a href="#">HEADLINE TEXT</a>'

</script>

<script type="text/javascript">
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('<div id="'+divId+'" class="'+divClass+'" style="position: relative; overflow: hidden"><div class="innerDiv" style="position: absolute; width: 100%" id="'+divId+'1">'+content[0]+'</div><div class="innerDiv" style="position: absolute; width: 100%; visibility: hidden" id="'+divId+'2">'+content[1]+'</div></div>')
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)
}

// -------------------------------------------------------------------
// initialize()- Initialize scroller method.
// -Get div objects, set initial positions, start up down animation
// -------------------------------------------------------------------

pausescroller.prototype.initialize=function(){
this.tickerdiv=document.getElementById(this.tickerid)
this.visiblediv=document.getElementById(this.tickerid+"1")
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)
}


// -------------------------------------------------------------------
// animateup()- Move the two inner divs of the scroller up and in sync
// -------------------------------------------------------------------

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)
}
}

// -------------------------------------------------------------------
// swapdivs()- Swap between which is the visible and which is the hidden div
// -------------------------------------------------------------------

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"
}

// -------------------------------------------------------------------
// setmessage()- Populate the hidden div with the next message before it's visible
// -------------------------------------------------------------------

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
}

</script>


<script type="text/javascript">

//new pausescroller(name_of_message_array, CSS_ID, CSS_classname, pause_in_miliseconds)
new pausescroller(pausecontent2, "pscroller2", "someclass", 1000)

</script>

Make these customizations:

  • To change the Loud speaker image change

http://4.bp.blogspot.com/-7ZFQXCvcnjQ/TlfjPMxiBJI/AAAAAAAAEzM/jrV-qvI_xqM/s400/updates1.gif

  • If you wish to increase the scroller width size then edit this width: 430px;
  • Replace 0080ff with your link colour.
  • Replace HEADLINE TEXT with anything you wish to write as announcement or updates. Write any text description you want.
  • Replace # with headline page link/url. On clicking this link the visitors will be taken to the headline related page. If you don't want to link your Headlines then simply delete # next to each HEADLINE TEXT  that you don't wish to hyperlink.
  • To change the scroll change delay time kindly edit 1000 . The more your decrease this value the faster will the links scroll up and down.

           4.  Finally save your widget and you are all set!

Visit your blogs to see it scrolling beautifully.

How do you find this new widget?

Please let me know whether you liked this new widget or not. Also feel free to ask any related question. Would be a pleasure to help you out. Peace buddies.

The only favour I need is to kindly like it and +1'd it. :)

Facebook Comment

Blogger Tips and TricksLatest Tips And TricksBlogger Tricks