Page 1 of 1

FAQ: how to apply a customized scroll bar styler in a Joomla Template.

Posted: Mon Nov 28, 2005 7:19 pm
by guilliam
want to apply a customized scrollbar / scroll bar for your i.e. browser and cant figure out how to implement it in Joomla template?

okies here goes:

1. in your index.php just after your you closing head tag () add this line:

Code: Select all

<!--[if IE]>
<style type="text/css">
body, html {
        scrollbar-3dlight-color: #d0d9db;
   scrollbar-base-color: #8e9296;
   scrollbar-face-color: #FFFFFF;
   scrollbar-track-color: #8e9296;
   scrollbar-arrow-color: #972f1a;
   scrollbar-shadow-color: #000000;
   scrollbar-darkshadow-color: #000000;
   scrollbar-highlight-color: #ffffff;
}</style>
<![endif]-->


take note that this only applies to I.E. since scrollbar styling is non W3C standard.. as you may now micros0ft tries to make their OWN standards. lol!  ;)

if you are asking how to apply this in opera,.. here a brief explanation and how to implement:

Opera

    7.x:
    - Opera supports CSS scrollbar coloring, but this feature is not enabled by default, nor is the setting available in the UI. The user has to manually add a line to their Opera6.ini file. In the "[User Prefs]" section, the following line should be added on its own line:
    Enable Scrollbar Colors=1
    - Since IE is the "reference implementation" (so to speak) of this property, it seems best to mention differences under Opera rather than IE: Opera seems to use slightly different color dithering for the scrollbar-track than IE does.


argh.. got this solution after a client insist of imlpementing that scroll bar. lol!  ;)

hope that helps! ;)


- guilliam



keywords : how to apply a customized scroll bar styler , scrollbar style  in a Joomla Template.

Re: FAQ: how to apply a customized scroll bar styler in a Joomla Template.

Posted: Mon Nov 28, 2005 7:24 pm
by guilliam
incase youre looking for a color styler you can use this FREE online color picker:

http://www.freemambo.com/site/index.php ... l=genstyle

to syle your scroll bar styler. ;)

- guilliam

Re: FAQ: how to apply a customized scroll bar styler in a Joomla Template.

Posted: Mon Dec 05, 2005 7:39 am
by Jurie
what about fade in ie? check this http://dawnphil.org

Re: FAQ: how to apply a customized scroll bar styler in a Joomla Template.

Posted: Mon Dec 05, 2005 1:26 pm
by guilliam
Jurie wrote:what about fade in ie? check this http://dawnphil.org


im not so sure about that tech.. but i think(i think!) it is using AJAX, same as google and yahoo using this tech now.. its very much possible to imlement with joomla,.. try checking this one:

http://www.joomlart.com/templates_demo. ... ja_capella

just needs the fading though

- g

Re: FAQ: how to apply a customized scroll bar styler in a Joomla Template.

Posted: Mon Dec 05, 2005 1:47 pm
by guilliam
btw.. if you really need that check this for reference:

http://www.myfreewares.com/sourcecodes- ... nload.html

http://www.webwizguide.com/bbs/forum_po ... =7296&PN=1

i havent tried it.. bec i dont see a strong point in using such bec issues of accesability and usuability will be at stake in implementing that in your joomla.. but i have a strong feeling it is possible.

- g

Re: FAQ: how to apply a customized scroll bar styler in a Joomla Template.

Posted: Mon Dec 05, 2005 3:13 pm
by Waseem Sadiq
Jurie wrote:what about fade in ie? check this http://dawnphil.org



This is javascript, here's the code:

Code: Select all

<!--
   // See KB article about changing this dynamic HTML
   dynamicanimAttr = "dynamicanimation"
   animCancel = "skipanim"
   fpanimationPrefix = "fpAnim"
   animateElements = new Array()
   currentElement = 0
   speed = 1
   stepsZoom = 8
   stepsWord = 8
   stepsFly = 17
   stepsSpiral = 16
   stepsSpiralWord = 19
   stepsElastic = 32
   steps = stepsZoom
   step = 0
   cornerPhase=0
   outEffect=0
   function remSuffix(str)
   {
      ind=str.indexOf("FP")
      str = str.substring(0,ind)
      return str
   }
   function dynAnimOut(el)
   {
      outEffect=1
      dynAnimation(el)
      outEffect=0
   }
   function dynAnimation(obj)
   {
      animateElements = new Array()
      var ms = navigator.appVersion.indexOf("MSIE")
      ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4)
      if(!ie4)
      {
         if((navigator.appName == "Netscape") &&
            (parseInt(navigator.appVersion.substring(0, 1)) >= 4))
            doc_els=document.layers
         else
            return
      }
      else
         doc_els=document.all
        if(outEffect && !ie4)
            return
      if(ie4)
      {
          for (index=document.all.length-1; index >= document.body.sourceIndex; index--)
         {
            el = document.all[index]
            if(outEffect && el != obj)
               continue
            if(outEffect)
               animationId = el.id.substring(9,el.id.length)
            else
               animationId = el.id.substring(6,el.id.length)
            animation=remSuffix(animationId)
            if(null != animation)
            {
               altcnt=0
               if(   animation == "dropWord"            ||
                  animation == "flyTopRightWord"         ||
                  animation == "flyBottomRightWord"      ||
                  animation == "waveWords"         ||
                  animation == "hopWords")
               {
                  ih = el.innerHTML
                  outString = ""
                  i1 = 0
                  iend = ih.length
                  while(true)
                  {
                     i2 = startWord(ih, i1)
                     if(i2 == -1)
                     i2 = iend
                     outWord(ih, i1, i2, false, "", outEffect ? obj.id : el.id)
                     if(i2 == iend)
                        break
                     i1 = i2
                     i2 = endWord(ih, i1)
                     if(i2 == -1)
                        i2 = iend
                     if (animation == "waveWords")
                        outWordAlt(ih, i1, i2, true, animation, altcnt)
                     else
                        outWord(ih, i1, i2, true, (outEffect ? "Out" : "") + animation,
                           outEffect ?  obj.id : el.id)

                     if(i2 == iend)
                        break
                     i1 = i2
                     altcnt++
                  }
                  document.all[index].innerHTML = outString
                  document.all[index].style.posLeft = 0
                  document.all[index].setAttribute(animCancel, true)
                  document.all[index].style.visibility="visible"
               }
            }
         }
      }
      i = 0
      for (index=0; index < doc_els.length; index++)
      {
         el = doc_els[index]
         if(0 != el.id.indexOf(fpanimationPrefix))
            continue
         if (ie4)
         {
            elprops=el.style
            scrollOffsetTop=document.body.scrollTop
            docHeight=document.body.offsetHeight
            docWidth=document.body.offsetWidth
            elW=100
            elH=el.offsetHeight
         }
         else
         {
            elprops=el
            scrollOffsetTop=window.pageYOffset
            docHeight=window.innerHeight
            docWidth=window.innerWidth
            elW=el.clip.width
            elH=el.clip.height
         }
         if(outEffect)
            animationId = el.id.substring(9,el.id.length)
         else
            animationId = el.id.substring(6,el.id.length)
         animation=remSuffix(animationId)
         if(outEffect && (obj != el))
         {
            if(el.SRCID != obj.id)
               continue
         }
         if (null != animation )
         {
            if(ie4 && null!=el.getAttribute(animCancel, false))
               continue
            if(!ie4)
            {
               elprops.posLeft=elprops.left
               elprops.posTop=elprops.top
            }
            el.startL=offsetLeft(el)
            if(animation == "flyLeft")
            {
               elprops.posLeft = -offsetLeft(el)-elW
               elprops.posTop = 0
            }
            else if(animation == "flyRight" || animation=="elasticRight")
            {
               elprops.posLeft = -offsetLeft(el)+docWidth
               elprops.posTop = 0
            }
            else if(animation == "flyTop" || animation == "dropWord")
            {
               elprops.posLeft = 0
               elprops.posTop = scrollOffsetTop-offsetTop(el)-elH
            }
            else if(animation == "flyBottom" || animation == "elasticBottom")
            {
               elprops.posLeft = 0
               elprops.posTop = scrollOffsetTop-offsetTop(el)+docHeight
            }
            else if(animation == "flyTopLeft")
            {
               elprops.posLeft = -offsetLeft(el)-elW
               elprops.posTop = scrollOffsetTop-offsetTop(el)-elH
            }
            else if(animation == "flyTopRight" || animation == "flyTopRightWord")
            {
               elprops.posLeft = -offsetLeft(el)+docWidth
               elprops.posTop = scrollOffsetTop-offsetTop(el)-elH
            }
            else if(animation == "flyCorner")
            {
               elprops.posLeft = docWidth*0.2-offsetLeft(el)
               
               elprops.posTop = scrollOffsetTop-offsetTop(el)+docHeight
            }
            else if(animation == "flyBottomLeft")
            {
               elprops.posLeft = -offsetLeft(el)-elW
               elprops.posTop = scrollOffsetTop-offsetTop(el)+docHeight
            }
            else if(animation == "flyBottomRight" || animation == "flyBottomRightWord")
            {
               elprops.posLeft = -offsetLeft(el)+docWidth
               elprops.posTop = scrollOffsetTop-offsetTop(el)+docHeight
            }
            else if(animation == "spiral")
            {
               elprops.posLeft = -offsetLeft(el)+docWidth
               elprops.posTop = scrollOffsetTop-offsetTop(el)+docHeight
            }
            else if((animation.indexOf("waveWords") != -1) || animation=="hopWords")
            {
               if(i)
               {
                  prevEl=animateElements[i-1]
                  elprops.r = offsetLeft(el)-prevEl.startL
               }
               else
                  elprops.r = offsetLeft(el)
            }
            else if(animation == "wipeLR" || animation == "wipeMID")
            {
               if (ie4 && elprops.position=="absolute")
               {
                  el.sizeW=el.offsetWidth
                  elprops.clip="rect(0 0 0 0)"
               }
               else if (!ie4)
               {
                  el.sizeW=el.clip.width
                  el.clip.width=0
               }
            }
            else if(animation == "wipeTB")
            {
               if (ie4 && elprops.position=="absolute")
               {
                  elprops.clip="rect(0 0 0 0)"
               }
               else if(!ie4)
               {
                  el.sizeH=el.clip.height
                  el.clip.height=0
               }
            }
            else if(animation == "zoomIn")
            {
               elprops.posLeft = 0
               elprops.posTop = 0
            }
            else if(animation == "zoomOut")
            {
               elprops.posLeft = 0
               elprops.posTop = 0
            }
            else
            {
               continue
            }
            if(!outEffect)
            {
               el.initLeft = elprops.posLeft
               el.initTop  = elprops.posTop
               el.endLeft  = 0
               el.endTop   = 0
               elprops.visibility = "hidden"
            }
            else
            {
               el.initLeft = 0
               el.initTop  = 0
               el.endLeft = elprops.posLeft
               el.endTop  = elprops.posTop
               elprops.posTop = 0
               elprops.posLeft = 0
            }
            if(!ie4)
            {
               elprops.left=elprops.initLeft
               elprops.top =elprops.initTop
            }
            animateElements[i++] = el
         }
      }
      if(animateElements.length > 0)
      {
         if(outEffect)
            window.setTimeout("animate(1);", speed, "Javascript")
         else
            window.setTimeout("animate(0);", speed, "Javascript")
      }
   }
   function offsetLeft(el)
   {
      if(ie4)
      {
         x = el.offsetLeft
         for (e = el.offsetParent; e; e = e.offsetParent)
            x += e.offsetLeft
         return x
      }
      else
      {
         x = el.pageX
         return x
      }
   }
   function offsetTop(el)
   {
      if(ie4)
      {
         y = el.offsetTop
         for (e = el.offsetParent; e; e = e.offsetParent)
            y += e.offsetTop;
         return y
      }
      else
      {
         y = el.pageY
         return y   
      }
   }
   function startWord(ih, i)
   {
      for(tag = false; i < ih.length; i++)
      {
         c = ih.charAt(i)
         if(c == '<')
         {
            if(ih.substring(i+1, i+4) == "IMG")
            return i;
            tag = true
         }
         if(!tag)
            return i
         if(c == '>')
            tag = false
      }
      return -1
   }
   function endWord(ih, i)
   {
      nonSpace = false
      space = false
      img = false
      if(ih.charAt(i) == '<')
      {
         img = true
         i++;
      }
      while(i < ih.length)
      {
         c = ih.charAt(i)
         if(c != ' ')
            nonSpace = true
         if(img && c == '>')
            img = false;
         if(nonSpace && !img && c == ' ')
            space = true
         if(c == '<')
            return i
         if(space && c != ' ')
            return i
         i++
      }
      return -1
   }
   function outWord(ih, i1, i2, dyn, anim, srcID)
   {
      if(dyn)
         if(!outEffect)
            outString += "<SPAN ID="" +  fpanimationPrefix + anim + "FP" style="position: relative; visibility: hidden;">"
         else
            outString += "<SPAN SRCID="" + srcID + ""ID="" +  fpanimationPrefix + anim + "FP" style="position: relative;">"
      outString += ih.substring(i1, i2)
      if(dyn)
         outString += "</SPAN>"
   }
   function outWordAlt(ih, i1, i2, dyn, anim, altcnt)
   {
      if(dyn)
      {
         if(altcnt%2)
            outString += "<SPAN ID="" +  fpanimationPrefix + anim + "LFP" style="position: relative;  visibility: hidden;">"
         else
            outString += "<SPAN ID="" +  fpanimationPrefix + anim + "RFP" style="position: relative;  visibility: hidden;">"
      }
         
      outString += ih.substring(i1, i2)
      if(dyn)
         outString += "</SPAN>"
   }
   function animate(animOut)
   {
      el = animateElements[currentElement]
      if(animOut)
         animationId = el.id.substring(9,el.id.length);
      else
         animationId = el.id.substring(6,el.id.length);
      animation=remSuffix(animationId)
      if (ie4)
         elprops=el.style
      else
         elprops=el

      if(!step && !animOut)
         elprops.visibility="visible"
      step++
      if(animation == "spiral")
      {
         steps = stepsSpiral
         v = step/steps
         rf = 1.0 - v
         t = v * 2.0*Math.PI
         rx = Math.max(Math.abs(el.initLeft), 200)
         ry = Math.max(Math.abs(el.initTop),  200)
         elprops.posLeft = Math.ceil(-rf*Math.cos(t)*rx)
         elprops.posTop  = Math.ceil(-rf*Math.sin(t)*ry)
      }
      else if(animation == "waveWordsL" || animation=="hopWords" || animation == "waveWords")
      {
         steps = stepsSpiralWord
         v = step/steps
         rf = (1.0 - v)
         t = v * 1.0*Math.PI
         elprops.posLeft = Math.ceil(-rf*Math.cos(t)*elprops.r)
         elprops.posTop  = Math.ceil(-rf*Math.sin(t)*elprops.r)
      }
      else if(animation == "waveWordsR")
      {
         steps = stepsSpiralWord
         v = step/steps
         rf = (1.0 - v)
         t = v * 1.0*Math.PI
         elprops.posLeft = Math.ceil(-rf*Math.cos(t)*elprops.r)
         elprops.posTop  = Math.ceil( rf*Math.sin(t)*elprops.r)
      }
      else if(animation == "zoomIn")
      {
         steps = stepsZoom
         elprops.fontSize = Math.ceil(50+50*step/steps) + "%"
         elprops.posLeft = 0
      }
      else if(animation == "zoomOut")
      {
         steps = stepsZoom
         fontSz=Math.ceil(100+200*(steps-step)/steps) + "%"
         elprops.fontSize = fontSz
         elprops.posLeft = 0
      }
      else if(animation == "elasticRight")
      {
         steps = stepsElastic
         v = step/steps
         rf=Math.exp(-v*7)
         t = v * 1.5*Math.PI
         rx =Math.abs(el.initLeft)
         elprops.posLeft = rf*Math.cos(t)*rx
         elprops.posTop  = 0
      }
      else if(animation == "elasticBottom")
      {
         steps = stepsElastic
         v = step/steps
         rf=Math.exp(-v*7)
         t = v * 2.5*Math.PI
         ry =Math.abs(el.initTop)
         elprops.posLeft = 0
         elprops.posTop  = rf*Math.cos(t)*ry
      }
      else if(animation == "wipeLR")
      {
         steps = stepsElastic
         if(ie4 && elprops.position=="absolute")
            elprops.clip = "rect(0 "+ step/steps*100 +"% 100% 0)"
         else if (!ie4)
         {
            elprops.clip.right=step/steps*el.sizeW
         }
      }
      else if(animation == "wipeTB")
      {
         steps = stepsElastic
         if(ie4 && elprops.position=="absolute")
            elprops.clip = "rect(0 100% "+step/steps*el.offsetHeight+"px 0)"
         else
            elprops.clip.bottom=step/steps*el.sizeH
      }
      else if(animation == "wipeMID")
      {
         steps = stepsElastic
         if(ie4 && elprops.position=="absolute")
         {
            elprops.clip = "rect(0 "+el.sizeW/2*(1+step/steps)+"px 100% "+el.sizeW/2*(1-step/steps)+")"
         }
         else if(!ie4)
         {
            elprops.clip.right=el.sizeW/2*(1+step/steps)
            elprops.clip.left=el.sizeW/2*(1-step/steps)
         }
      }
      else if(animation == "flyCorner")
      {
         if(!cornerPhase)
         {
            steps = stepsElastic/2
            v = step/steps
            rf=Math.exp(-v*7)
            t = v * 2.5*Math.PI
            ry =Math.abs(el.initTop)
            elprops.posTop  = rf*Math.cos(t)*ry
         }
         else
         {
            steps = stepsFly
            dl = el.initLeft / steps
            elprops.posLeft = elprops.posLeft - dl
            elprops.posTop = 0
         }
      }
      else
      {
         steps = stepsFly
         if(animation == "dropWord" || animation == "flyTopRightWord" || animation == "flyBottomRightWord")
            steps = stepsWord
         dl = (el.endLeft - el.initLeft) / steps
         dt = (el.endTop  - el.initTop)  / steps
         elprops.posLeft = elprops.posLeft + dl
         elprops.posTop = elprops.posTop + dt
      }
      if (step >= steps)
      {
         if(!(animation == "wipeLR"   ||
            animation  == "wipeTB"   ||
            animation  == "wipeMID"   ||
            (animation == "flyCorner" && !cornerPhase)))
         {
            elprops.posLeft = el.endLeft
            elprops.posTop = el.endTop
         }
         if(animOut)
         {
            elprops.visibility="hidden"
         }

         step = 0
         if(animation=="flyCorner" && !cornerPhase)
            cornerPhase=1
         else
         {
            cornerPhase=0
            currentElement++
         }

      }
      if(!ie4)
      {
         elprops.left=elprops.posLeft
         elprops.top =elprops.posTop
      }
      if(currentElement < animateElements.length)
      {
         if(animOut)
            window.setTimeout("animate(1);", speed, "Javascript")
         else
            window.setTimeout("animate(0);", speed, "Javascript")
      }
      else
         currentElement=0
   }
   function rollIn(el)
   {
      var ms = navigator.appVersion.indexOf("MSIE")
      ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4)
      if(ie4)
      {
         el.initstyle=el.style.cssText;el.style.cssText=el.fprolloverstyle
      }
   }
   function rollOut(el)
   {
      var ms = navigator.appVersion.indexOf("MSIE")
      ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4)
      if(ie4)
      {
         el.style.cssText=el.initstyle
      }
   }
   function clickSwapStyle(el)
   {
      var ms = navigator.appVersion.indexOf("MSIE")
      ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4)
      if(ie4)
      {
         ts=el.style.cssText
         el.style.cssText=el.fprolloverstyle
         el.fprolloverstyle=ts
      }
   }
   function clickSwapImg(el)
   {
        if(document.all || document.layers)
        {
          ts=el.src
          el.src=el.lowsrc
          el.lowsrc=ts
        }
   }
//-->


Here's the HTML to call it into your template:

add this before

Code: Select all

<script language="JavaScript1.2" fptype="dynamicanimation" src="animate.js"></script>


You may have to hard code your menu (I don't know how to make a module out of this so you'll have to forgive me).
then code your links like this:

Code: Select all

<td onclick="window.navigate('index.php');" onmouseover="rollIn(this)" onmouseout="rollOut(this)" dynamicanimation="fpAnimformatRolloverFP1" fprolloverstyle="cursor: hand; background-color: #FFFFFF; border-right:1 solid #000000;" language="Javascript1.2"><a href="index.php" target="_self" class="mainmenu">Home</a></td>


I know squat about javascript but it might help you :)

Re: FAQ: how to apply a customized scroll bar styler in a Joomla Template.

Posted: Tue Dec 06, 2005 5:20 am
by Jurie
Thank you very  musch for your replies.  I don't want to hijack this posting and I found something, so here it is: http://forum.joomla.org/index.php/topic,23071.0.html