Go Back   CodingForums.com > :: Client side development > JavaScript programming

Before you post, read our: Rules & Posting Guidelines

Reply
 
Thread Tools Rate Thread
Enjoy an ad free experience by logging in. Not a member yet? Register.
Old 06-26-2009, 02:34 PM   PM User | #1
piers
New Coder

 
Join Date: Jun 2009
Posts: 63
Thanks: 8
Thanked 0 Times in 0 Posts
piers is an unknown quantity at this point
Adding fadeout to existing function

I'm using a script I've found that adds a bullet to links on a page:

Code:
<script type="text/javascript">

/***********************************************
* Bullet Link script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

//Define your bullet image(s) via arbitrary variables, where bulletimg=["imagepath", imagewidth, offsetxfromroot, offsetyfromroot]
var bulletimg1=["pp_images/White_Orb.png", 10, 4, 0]
var bulletimg2=["pp_images/Blue_Orb.png", 10, 4, 8]

////Stop editting here/////////////////////
var classnameRE=/(^|\s+)ddbullet($|\s+)/i //regular expression to screen for classname within element

function caloffset(what, offsettype){
var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
var parentEl=what.offsetParent;
while (parentEl!=null){
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;
}
return totaloffset;
}

function displaybullet(linkobj){
var reltovar=window[linkobj.getAttribute("rel")]
bulletobj.setAttribute("src", reltovar[0])
bulletobj.style.left=caloffset(linkobj, "left")-reltovar[1]-reltovar[2]+"px"
bulletobj.style.top=caloffset(linkobj, "top")-reltovar[3]+"px"
bulletobj.style.visibility="visible"
}

function modifylinks(){
bulletobj=document.createElement("img")
bulletobj.setAttribute("id", "bulletimage")
bulletobj.className="bulletimagestyle"
document.body.appendChild(bulletobj)
for (i=0; i<document.links.length; i++){
if (typeof document.links[i].className=="string" && document.links[i].className.search(classnameRE)!=-1){
document.links[i].onmouseover=function(){displaybullet(this)}
document.links[i].onmouseout=function(){bulletobj.style.visibility="hidden"}
}
}
}

if (window.addEventListener)
window.addEventListener("load", modifylinks, false)
else if (window.attachEvent)
window.attachEvent("onload", modifylinks)
else if (document.getElementById || document.all)
window.onload=modifylinks

</script>
and what I'd love to do is add a function whereby the bullet fades out on mouseout.

I've tried injecting a simple fadeout function at the following line of the script above:
Code:
document.links[i].onmouseout=function(){bulletobj.style.visibility="hidden"
but it just breaks the script.

The function I tried to add was:
Code:
function setOpacity(level) {
  element.style.opacity = level;
  element.style.MozOpacity = level;
  element.style.KhtmlOpacity = level;
  element.style.filter = "alpha(opacity=" + (level * 100) + ");";
}
var duration = 1000; 
var steps = 20; 
var delay = 500; 

function fadeOut() {
  for (i = 0; i <= 1; i += (1 / steps)) {
    setTimeout("setOpacity(" + (1 - i) + ")", i * duration);
  }
And then tried to insert it:
Code:
document.links[i].onmouseout=function fadeOut()
But, probably because I'm clueless, I couldn't get it to work...

Does anyone have a better approach? Or see my glaring error..? :)
piers is offline   Reply With Quote
Old 06-26-2009, 05:58 PM   PM User | #2
vwphillips
Senior Coder

 
Join Date: Mar 2005
Location: Portsmouth UK
Posts: 4,355
Thanks: 3
Thanked 458 Times in 445 Posts
vwphillips is a jewel in the roughvwphillips is a jewel in the roughvwphillips is a jewel in the rough
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
  <title></title>
<script type="text/javascript">
/*<![CDATA[*/
// Basic Element Animator (14-May-2009)
// by Vic Phillips http://www.vicsjavascripts.org.uk

// To progressively change the Left, Top, Width, Height or Opacity of an element over a specified period of time.
// With the ability to scale the effect time on specified minimum/maximum values
// and with three types of progression 'sin' and 'cos' and liner and an optional 'Bounce'.

// **** Application Notes

// **** The HTML Code
//
// when moving an element the inline or class rule style position of the element should be assigned as
// 'position:relative;' or 'position:absolute;'.
//
// The element would normally be assigned a unique ID name.
//

// **** Executing the Effect(Script)
//
// The effect is executed by an event call to function 'zxcBAnimator('width#',document.getElementById('tst'),10,800,5000,[10,800],'sin');'
// where:
//  parameter 0 = the mode(see Note 2).                                                                     (string)
//  parameter 1 = the unique ID name or element object.                                                     (string or element object)
//  parameter 2 = the start position of the effect.                                                         (digits, for opacity minimum 0, maximum 100)
//  parameter 3 = the finish position of the effect.                                                        (digits, for opacity minimum 0, maximum 100)
//  parameter 4 = (optional) period of time between the start and finish of the effect in milliseconds.     (digits or defaults to 2000 milliSeconds)
//  parameter 5 = (optional) to scale the effect time on a specified minimum/maximum.                        (array, see Note 5)
//                 field 0 the minimum. (digits)
//                 field 1 the maximum. (digits)
//  parameter 6 = (optional) the type of progression, 'sin', 'cos' or 'liner'.                              (string, default = 'liner')
//                 'sin' progression starts fast and ends slow.
//                 'cos' progression starts slow and ends fast.
//
//  Note 1:  The default units(excepting opacity) are 'px'.
//  Note 2:  Examples modes: 'left', 'top', 'width', 'height', 'opacity.
//           For hyphenated modes, the first character after the hyphen must be upper case, all others lower case.
//  Note 3:  To 'toggle' the effect include '#' in parameter 0.
//           The first call will set the toggle parameters.
//           Subsequent calls with '#' in parameter 0 and the same start and finish parameters will 'toggle' the effect.
//  Note 4:  The function may be re-executed with a different set of parameters (start/finish time or period)
//           whenever required, say from an onclick/mouseover/out event.
//           The period parameter will be retained unless re-specified.
//  Note 5: parameter 5 is of particular use when re-calling the effect
//          in mid travel to retain an constant rate of progression.
//  Note 6: parameters 2 and 3 must be different values to execute the script.
//

// **** Advanced Applications
//
//  Calling function 'zxcBAnimator' returns the instance of the script,
//  this may be assigned to a variable and used to access the current value of the effect or to control the effect.
//  alternatively the script instance by elementobject[mode.replace(/\W/g,'')+'oop'];
//  where mode is parameter 0 of the initial call.
//  An array storing the current, start and finish values of the element effect may be accessed
//  from the element [instance].data as fields 0, 1 and 2 respectively where [instance] is the instance of the script.
//
//  Once initialised the effect may be updated by calling function
//  [instance].update([100,200])
//  where:
//   parameter 0 = an array defining the start and finish values.                                            (array)
//                  field[0] =the start position of the effect.   (digits, for opacity minimum 0, maximum 100)
//                  field[0] = the finish position of the effect. (digits, for opacity minimum 0, maximum 100)
//   parameter 1 = (optional) period of time between the start and finish of the effect in milliseconds.     (digits or defaults to 2000 milliSeconds)
//   parameter 2 = (optional) to scale the effect time on a specified minimum/maximum.                        (array, see Note 5)
//                   field 0 the minimum. (digits)
//                   field 1 the maximum. (digits)
//   parameter 3 = (optional) the type of progression, 'sin', 'cos' or 'liner'.                              (string, default = 'liner')
//                  'sin' progression starts fast and ends slow.
//                  'cos' progression starts slow and ends fast.
//
// ** Bounce
//   A 'bounce' effect may be applied by assigning the script instance property 'Bounce' an array
//   defining the 'bounce' properties.
//   e.g.
//   [instance].Bounce=[100,90,4,200];
//   where:
//    field[0] = the 'bounce' maximum.  (digits)
//    field[1] = the 'bounce' minimum.  (digits)
//    field[2] = the number of bounces. (digits)
//    field[3] = the 'bounce' duration. (digits)
//


// **** General
//
// Function names are prefixed with 'zxc' to minimise conflicts with other JavaScripts.
// These characters may be changed to characters of choice using global find and replace.
//
// The Functional Code, about 2.41K with 'bounce' and 'opacity' or 1.97K without is best as an External JavaScript.
//
// Tested with IE7 and Mozilla FireFox on a PC.
//

// **** Functional Code - NO NEED to Change


function zxcBAnimator(mde,obj,srt,fin,ms,scale,curve){
 if (typeof(obj)=='string'){ obj=document.getElementById(obj); }
 if (!obj) return;
 var oop=obj[mde.replace(/\W/g,'')+'oop'];
 if (oop){
  if (oop.srtfin[0]==srt&&oop.srtfin[1]==fin&&mde.match('#')) oop.update([oop.data[0],(oop.srtfin[0]==oop.data[2])?fin:srt],ms,scale,curve);
  else oop.update([srt,fin],ms,scale,curve);
 }
 else oop=obj[mde.replace(/\W/g,'')+'oop']=new zxcBAnimatorOOP(mde,obj,srt,fin,ms,scale,curve);
 return oop;
}

function zxcBAnimatorOOP(mde,obj,srt,fin,ms,scale,curve){
 this.srtfin=[srt,fin];
 this.to=null;
 this.obj=obj;
 this.mde=mde.replace(/\W/g,'');
 this.update([srt,fin],ms,scale,curve);
}

zxcBAnimatorOOP.prototype.update=function(srtfin,ms,scale,curve){
 clearTimeout(this.to);
 this.time=ms||this.time||2000;
 this.data=[srtfin[0],srtfin[0],srtfin[1]];
 this.mS=this.time*(!scale?1:Math.abs((srtfin[1]-srtfin[0])/(scale[1]-scale[0])));
 this.ms=this.mS;
 this.curve=(typeof(curve)=='string')?curve.charAt(0).toLowerCase():(this.curve)?this.curve:'x';
 this.inc=Math.PI/(2*this.mS);
 this.srttime=new Date().getTime();
 this.cng();
}

zxcBAnimatorOOP.prototype.cng=function(){
 this.ms=new Date().getTime()-this.srttime;
 this.data[0]=(this.curve=='s')?Math.floor((this.data[2]-this.data[1])*Math.sin(this.inc*this.ms)+this.data[1]):(this.curve=='c')?(this.data[2])-Math.floor((this.data[2]-this.data[1])*Math.cos(this.inc*this.ms)):(this.data[2]-this.data[1])/this.mS*this.ms+this.data[1];
 this.apply();
 if (this.ms<this.mS) this.to=setTimeout(function(oop){return function(){oop.cng();}}(this),10);
 else {
  this.data[0]=this.data[2];
  this.apply();
  if (this.Bounce&&this.Bounce[2]>0) this.bounce();
 }
}

zxcBAnimatorOOP.prototype.apply=function(){
 if (isFinite(this.data[0])){
  if (this.mde!='left'&&this.mde!='top'&&this.data[0]<0) this.data[0]=0;
  if (this.mde!='opacity') this.obj.style[this.mde]=this.data[0]+'px';
  else zxcOpacity(this.obj,this.data[0]);
 }
}

zxcBAnimatorOOP.prototype.bounce=function(){
 if (this.Bounce[2]%2==0)
 this.Bounce[1]+=(this.Bounce[0]-this.Bounce[1])/(this.Bounce[2])
 this.update([this.data[0],this.Bounce[this.Bounce[2]%2==0?1:0]],this.Bounce[3]/this.Bounce[2]);
 this.Bounce[2]--;
}

function zxcOpacity(obj,opc){
 if (opc<0||opc>100) return;
 obj.style.filter='alpha(opacity='+opc+')';
 obj.style.opacity=obj.style.MozOpacity=obj.style.KhtmlOpacity=opc/100-.001;
}

/*]]>*/
</script>

<script type="text/javascript">
/*<![CDATA[*/

function zxcBullet(cls){
 var as=zxcByClassName(cls,null,'A')
 for (var rel,oop,z0=0;z0<as.length;z0++){
  rel=as[z0].getAttribute('rel');
  if (rel){
   oop=new zxcBOOP(as[z0],rel);
  }
 }
}

function zxcBOOP(obj,rel){
 rel=rel.split(',');
 this.img=zxcES('IMG',{position:'absolute',zIndex:'101',visibility:'hidden',width:rel[1]+'px'},document.body);
 this.img.src=rel[0];
 this.os=[rel[2]*1,rel[3]*1,rel[4]*1];
 this.addevt(obj,'mouseover','ShowHide',true);
 this.addevt(obj,'mouseout','ShowHide',false);
 this.oop=zxcBAnimator('opacity',this.img,5,0,10);
 this.obj=obj;
 this.to=null;
}

zxcBOOP.prototype.ShowHide=function(e,ud){
 clearTimeout(this.to);
 zxcES(this.img,{visibility:'visible',left:zxcPos(this.obj)[0]+this.os[0]+'px',top:zxcPos(this.obj)[1]+this.os[1]+'px'});
 this.oop.update([this.oop.data[0],ud?100:0],this.os[2]);
 if (!ud){
  var oop=this;
  this.to=setTimeout(function(){ zxcES(oop.img,{visibility:'hidden'}); },this.os[2]);
 }
}

function zxcPos(obj){
 var rtn=[obj.offsetLeft,obj.offsetTop];
 while(obj.offsetParent!=null){
  var objp=obj.offsetParent;
  rtn[0]+=objp.offsetLeft;
  rtn[1]+=objp.offsetTop;
  obj=objp;
 }
 return rtn;
}


zxcBOOP.prototype.addevt=function(o,t,f,p){
 var oop=this;
 if (o.addEventListener) o.addEventListener(t,function(e){ return oop[f](e,p);}, false);
 else if (o.attachEvent) o.attachEvent('on'+t,function(e){ return oop[f](e,p); });
 else {
  var prev=o['on'+t];
  if (prev) o['on'+t]=function(e){ prev(e); oop[f](e,p); };
  else o['on'+t]=o[f];
 }
}

function zxcES(ele,style,par,txt){
 if (typeof(ele)=='string') ele=document.createElement(ele);
 for (key in style) ele.style[key]=style[key];
 if (par) par.appendChild(ele);
 if (txt) ele.appendChild(document.createTextNode(txt));
 return ele;
}

function zxcByClassName(nme,el,tag){
 if (typeof(el)=='string') el=document.getElementById(el);
 el=el||document;
 for (var tag=tag||'*',reg=new RegExp('\\b'+nme+'\\b'),els=el.getElementsByTagName(tag),ary=[],z0=0; z0<els.length;z0++){
  if(reg.test(els[z0].className)) ary.push(els[z0]);
 }
 return ary;
}

/*]]>*/
</script>

</head>

<body onload="zxcBullet('bullet');">
<a href="http://dynamicdrive.com" class="bullet" rel="http://www.vicsjavascripts.org.uk/StdImages/One.gif,30,100,0,1000">Dynamic Drive</a></body>
<br />
<a href="http://dynamicdrive.com" class="bullet" rel="http://www.vicsjavascripts.org.uk/StdImages/Two.gif,30,100,0,1000">Dynamic Drive</a></body>
</form>

</html>
__________________
Vic

God Loves You and will never love you less.

http://www.vicsjavascripts.org.uk/

If my post has been useful please donate to http://www.operationsmile.org.uk/
vwphillips is offline   Reply With Quote
Users who have thanked vwphillips for this post:
piers (06-26-2009)
Old 06-26-2009, 06:14 PM   PM User | #3
vwphillips
Senior Coder

 
Join Date: Mar 2005
Location: Portsmouth UK
Posts: 4,355
Thanks: 3
Thanked 458 Times in 445 Posts
vwphillips is a jewel in the roughvwphillips is a jewel in the roughvwphillips is a jewel in the rough
or

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
  <title></title>

<script type="text/javascript">
/*<![CDATA[*/

function zxcBullet(cls){
 var as=zxcByClassName(cls,null,'A')
 for (var rel,oop,z0=0;z0<as.length;z0++){
  rel=as[z0].getAttribute('rel');
  if (rel){
   oop=new zxcBOOP(as[z0],rel);
  }
 }
}

function zxcBOOP(obj,rel){
 rel=rel.split(',');
 this.img=zxcES('IMG',{position:'absolute',zIndex:'101',visibility:'hidden',width:rel[1]+'px'},document.body);
 this.img.src=rel[0];
 this.os=[rel[2]*1,rel[3]*1,rel[4]*1];
 this.addevt(obj,'mouseover','ShowHide',true);
 this.addevt(obj,'mouseout','ShowHide',false);
 this.obj=obj;
 this.to=null;
}

zxcBOOP.prototype.ShowHide=function(e,ud){
 clearTimeout(this.to);
 zxcES(this.img,{visibility:'visible',left:zxcPos(this.obj)[0]+this.os[0]+'px',top:zxcPos(this.obj)[1]+this.os[1]+'px'});
 this.cnt=100;
 zxcOpacity(this.img,100)
 if (!ud) this.opc();
}

zxcBOOP.prototype.opc=function(e,ud){
 var oop=this;
 zxcOpacity(this.img,this.cnt--);
 if (this.cnt>0) this.to=setTimeout(function(){ oop.opc(); },this.ms);
 else zxcES(oop.img,{visibility:'hidden'});
}

zxcBOOP.prototype.addevt=function(o,t,f,p){
 var oop=this;
 if (o.addEventListener) o.addEventListener(t,function(e){ return oop[f](e,p);}, false);
 else if (o.attachEvent) o.attachEvent('on'+t,function(e){ return oop[f](e,p); });
 else {
  var prev=o['on'+t];
  if (prev) o['on'+t]=function(e){ prev(e); oop[f](e,p); };
  else o['on'+t]=o[f];
 }
}

function zxcES(ele,style,par,txt){
 if (typeof(ele)=='string') ele=document.createElement(ele);
 for (key in style) ele.style[key]=style[key];
 if (par) par.appendChild(ele);
 if (txt) ele.appendChild(document.createTextNode(txt));
 return ele;
}

function zxcByClassName(nme,el,tag){
 if (typeof(el)=='string') el=document.getElementById(el);
 el=el||document;
 for (var tag=tag||'*',reg=new RegExp('\\b'+nme+'\\b'),els=el.getElementsByTagName(tag),ary=[],z0=0; z0<els.length;z0++){
  if(reg.test(els[z0].className)) ary.push(els[z0]);
 }
 return ary;
}

function zxcPos(obj){
 var rtn=[obj.offsetLeft,obj.offsetTop];
 while(obj.offsetParent!=null){
  var objp=obj.offsetParent;
  rtn[0]+=objp.offsetLeft;
  rtn[1]+=objp.offsetTop;
  obj=objp;
 }
 return rtn;
}

function zxcOpacity(obj,opc){
 if (opc<0||opc>100) return;
 obj.style.filter='alpha(opacity='+opc+')';
 obj.style.opacity=obj.style.MozOpacity=obj.style.KhtmlOpacity=opc/100-.001;
}

/*]]>*/
</script>

</head>

<body onload="zxcBullet('bullet');">
<a href="http://dynamicdrive.com" class="bullet" rel="http://www.vicsjavascripts.org.uk/StdImages/One.gif,30,100,0,10">Dynamic Drive</a></body>
<br />
<a href="http://dynamicdrive.com" class="bullet" rel="http://www.vicsjavascripts.org.uk/StdImages/Two.gif,30,100,0,150">Dynamic Drive</a></body>
</form>

</html>
__________________
Vic

God Loves You and will never love you less.

http://www.vicsjavascripts.org.uk/

If my post has been useful please donate to http://www.operationsmile.org.uk/
vwphillips is offline   Reply With Quote
Users who have thanked vwphillips for this post:
piers (06-26-2009)
Old 06-26-2009, 06:42 PM   PM User | #4
piers
New Coder

 
Join Date: Jun 2009
Posts: 63
Thanks: 8
Thanked 0 Times in 0 Posts
piers is an unknown quantity at this point
Wow, Vic - that's amazing... thanks for helping me, and so quickly.

I'm gonna be checking out your site first thing in the am....
piers is offline   Reply With Quote
Old 06-27-2009, 04:28 AM   PM User | #5
piers
New Coder

 
Join Date: Jun 2009
Posts: 63
Thanks: 8
Thanked 0 Times in 0 Posts
piers is an unknown quantity at this point
Vic, I've incorporated the second of your two scripts into my page and it's really starting to look great - thanks!

Just a couple of quick questions though :P

So far I can't quite figure out what the final value in
Code:
rel="http://www.vicsjavascripts.org.uk/StdImages/One.gif,30,100,0,10"
stands for (ie the "10")...

and I'm wondering if there's any way to easily adjust the rate of fade out - (if not, no big deal... it looks way cool).

I am noticing one oddity though: when the page loads there seems to be a slight over-height on the page content that produces a vertical scroll bar. After a few seconds it disappears (but with the corresponding jump in content position)... any ideas what might cause that? (it's not a major issue, perhaps, as I'm considering hiding all scrollbars with overflow:hidden anyway...)

Really appreciate your time and skills, thanks again.
piers is offline   Reply With Quote
Old 07-01-2009, 03:19 AM   PM User | #6
piers
New Coder

 
Join Date: Jun 2009
Posts: 63
Thanks: 8
Thanked 0 Times in 0 Posts
piers is an unknown quantity at this point
Okay... I actually took the time to read your earlier post more carefully

I think I have it all figured out... thanks!
piers is offline   Reply With Quote
Old 07-01-2009, 10:04 AM   PM User | #7
vwphillips
Senior Coder

 
Join Date: Mar 2005
Location: Portsmouth UK
Posts: 4,355
Thanks: 3
Thanked 458 Times in 445 Posts
vwphillips is a jewel in the roughvwphillips is a jewel in the roughvwphillips is a jewel in the rough
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
  <title></title>

<script type="text/javascript">
/*<![CDATA[*/
// rel="http://www.vicsjavascripts.org.uk/StdImages/One.gif,30,100,0,1"
//      src, width, left, top, speed
function zxcBullet(cls){
 var as=zxcByClassName(cls,null,'A')
 for (var rel,oop,z0=0;z0<as.length;z0++){
  rel=as[z0].getAttribute('rel');
  if (rel){
   oop=new zxcBOOP(as[z0],rel);
  }
 }
}

function zxcBOOP(obj,rel){
 rel=rel.split(',');
 this.img=zxcES('IMG',{position:'absolute',zIndex:'101',visibility:'hidden',width:rel[1]+'px'},document.body);
 this.img.src=rel[0];
 rel[4]=rel[4]||1;
 this.os=[rel[2]*1,rel[3]*1,rel[4]*1];
 this.addevt(obj,'mouseover','ShowHide',true);
 this.addevt(obj,'mouseout','ShowHide',false);
 this.obj=obj;
 this.to=null;
}

zxcBOOP.prototype.ShowHide=function(e,ud){
 clearTimeout(this.to);
 zxcES(this.img,{visibility:'visible',left:zxcPos(this.obj)[0]+this.os[0]+'px',top:zxcPos(this.obj)[1]+this.os[1]+'px'});
 this.cnt=100;
 zxcOpacity(this.img,100)
 if (!ud) this.opc();
}

zxcBOOP.prototype.opc=function(e,ud){
 var oop=this;
 zxcOpacity(this.img,(this.cnt-=this.os[2]));
 if (this.cnt>0) this.to=setTimeout(function(){ oop.opc(); },10);
 else zxcES(oop.img,{visibility:'hidden'});
}

zxcBOOP.prototype.addevt=function(o,t,f,p){
 var oop=this;
 if (o.addEventListener) o.addEventListener(t,function(e){ return oop[f](e,p);}, false);
 else if (o.attachEvent) o.attachEvent('on'+t,function(e){ return oop[f](e,p); });
 else {
  var prev=o['on'+t];
  if (prev) o['on'+t]=function(e){ prev(e); oop[f](e,p); };
  else o['on'+t]=o[f];
 }
}

function zxcES(ele,style,par,txt){
 if (typeof(ele)=='string') ele=document.createElement(ele);
 for (key in style) ele.style[key]=style[key];
 if (par) par.appendChild(ele);
 if (txt) ele.appendChild(document.createTextNode(txt));
 return ele;
}

function zxcByClassName(nme,el,tag){
 if (typeof(el)=='string') el=document.getElementById(el);
 el=el||document;
 for (var tag=tag||'*',reg=new RegExp('\\b'+nme+'\\b'),els=el.getElementsByTagName(tag),ary=[],z0=0; z0<els.length;z0++){
  if(reg.test(els[z0].className)) ary.push(els[z0]);
 }
 return ary;
}

function zxcPos(obj){
 var rtn=[obj.offsetLeft,obj.offsetTop];
 while(obj.offsetParent!=null){
  var objp=obj.offsetParent;
  rtn[0]+=objp.offsetLeft;
  rtn[1]+=objp.offsetTop;
  obj=objp;
 }
 return rtn;
}

function zxcOpacity(obj,opc){
 if (opc<0||opc>100) return;
 obj.style.filter='alpha(opacity='+opc+')';
 obj.style.opacity=obj.style.MozOpacity=obj.style.KhtmlOpacity=opc/100-.001;
}

/*]]>*/
</script>

</head>

<body onload="zxcBullet('bullet');">
<a href="http://dynamicdrive.com" class="bullet" rel="http://www.vicsjavascripts.org.uk/StdImages/One.gif,30,100,0,.5">Dynamic Drive</a></body>
<br />
<a href="http://dynamicdrive.com" class="bullet" rel="http://www.vicsjavascripts.org.uk/StdImages/Two.gif,30,100,0,4">Dynamic Drive</a></body>
</form>

</html>
__________________
Vic

God Loves You and will never love you less.

http://www.vicsjavascripts.org.uk/

If my post has been useful please donate to http://www.operationsmile.org.uk/
vwphillips is offline   Reply With Quote
Users who have thanked vwphillips for this post:
piers (07-01-2009)
Old 07-01-2009, 11:52 AM   PM User | #8
piers
New Coder

 
Join Date: Jun 2009
Posts: 63
Thanks: 8
Thanked 0 Times in 0 Posts
piers is an unknown quantity at this point
Excellent... thx
piers is offline   Reply With Quote
Reply

Bookmarks

Jump To Top of Thread


Thread Tools
Rate This Thread
Rate This Thread:

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

Forum Jump


All times are GMT +1. The time now is 09:57 PM.


Advertisement
Log in to turn off these ads.