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

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 02-06-2009, 12:51 PM   PM User | #1
Crispy
New Coder

 
Join Date: Jun 2008
Posts: 76
Thanks: 11
Thanked 0 Times in 0 Posts
Crispy is an unknown quantity at this point
jQuery Slider??

hey guys, i've seen this jQuery style slider everywhere, it's even on the BBC website. How do i achieve this?

http://www.delugestudios.com/

There's an example of it, where the two arrows left&right control the content?

(Also the pulldown at the top I really like? I don't know if you guys can explain this too?)

Thanks
Crispy is offline   Reply With Quote
Old 02-06-2009, 02:38 PM   PM User | #2
vwphillips
Senior Coder

 
Join Date: Mar 2005
Location: Portsmouth UK
Posts: 4,353
Thanks: 3
Thanked 456 Times in 443 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>
<style type="text/css">
/*<![CDATA[*/

#tst {
  position:relative;overflow:hidden;width:135px;height:50px;border:solid black 1px;
}

#tst DIV {
  position:relative;left:-10px;top:0px;width:510px;height:50px;
}
#tst DIV IMG{
  margin-Left:10px;
}

#tstV {
  position:relative;overflow:hidden;width:50px;height:135px;border:solid black 1px;
}

#tstV DIV {
  position:relative;left:0px;top:-10px;width:50px;height:510px;
}
#tstV DIV IMG{
  margin-Top:10px;
}
/*]]>*/
</style>
<script language="JavaScript" type="text/javascript">
/*<![CDATA[*/
// Basic Element Animator (21-December-2008) DRAFT
// 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 three types of progression 'sin' and 'cos' and liner.

// **** 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('left','tst1',20,260,2000);'
// where:
// parameter 0 = the mode(see Note 1).                                                                     (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)
//
//  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: there are three types of progression 'sin' and 'cos' and liner.
//                'sin' progression starts fast and ends slow.
//                'cos' progression starts slow and ends fast.
//          Once set the type of change will be retained until respecified.
//
// **** Advanced Applications
//
//  It may be required to access the current value of the effect.
//  The element effect is accessible from the element property
//  element effect = elementobject[mode.replace(/[-#]/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 effect.data as fields 0, 1 and 2 respectively
//

// **** General
//
// All variable, function etc. 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 2K) 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,time,zxccurve){
 if (typeof(obj)=='string'){ obj=document.getElementById(obj); }
 if (!obj||(!srt&&!fin)) return;
 var oop=obj[mde.replace(/[-#]/g,'')+'oop'];
 if (oop){
  clearTimeout(oop.to);
  if (oop.srtfin[0]==srt&&oop.srtfin[1]==fin&&mde.match('#')) oop.update([oop.data[0],(oop.srtfin[0]==oop.data[2])?fin:srt],time,zxccurve);
  else oop.update([srt,fin],time);
 }
 else obj[mde.replace(/[-#]/g,'')+'oop']=new zxcBAnimatorOOP(mde,obj,srt,fin,time,zxccurve);
}

function zxcBAnimatorOOP(mde,obj,srt,fin,time,zxccurve){
 this.srtfin=[srt,fin];
 this.to=null;
 this.obj=obj;
 this.mde=mde.replace(/[-#]/g,'');
 this.update([srt,fin],time,zxccurve);
}

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

zxcBAnimatorOOP.prototype.cng=function(){
 var ms=new Date().getTime()-this.srttime;
 this.data[0]=(this.curve=='s')?Math.floor((this.data[2]-this.data[1])*Math.sin(this.inc*ms)+this.data[1]):(this.curve=='c')?(this.data[2])-Math.floor((this.data[2]-this.data[1])*Math.cos(this.inc*ms)):(this.data[2]-this.data[1])/this.time*ms+this.data[1];
 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]);
 if (ms<this.time) this.to=setTimeout(function(oop){return function(){oop.cng();}}(this),10);
 else {
  this.data[0]=this.data[2];
  if (this.mde!='opacity') this.obj.style[this.mde]=this.data[0]+'px';
  else zxcOpacity(this.obj,this.data[0]);
 }
}

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 language="JavaScript" type="text/javascript">
/*<![CDATA[*/


function zxcSlide(mde,id,ud,spd){
 var mde=mde=='V'?['top','Top']:['left','Left'];
 var par=document.getElementById(id);
 var slide=par.getElementsByTagName('DIV')[0];
 if (!slide.ary){
  slide.nu=0;
  slide.ary=[];
  var clds=slide.childNodes;
  for (var z0=0;z0<clds.length;z0++){
   if (clds[z0].nodeType==1) slide.ary.push(clds[z0]);
  }
 }
 slide.nu=Math.max(Math.min(slide.nu+=ud,slide.ary.length-1),0);
 zxcBAnimator(mde[0],slide,SVInt(slide,mde[0]),-slide.ary[slide.nu]['offset'+mde[1]],spd);

}

function SVInt(obj,par){
 if (obj.currentStyle) return parseInt(obj.currentStyle[par.replace(/-/g,'')]);
 return parseInt(document.defaultView.getComputedStyle(obj,null).getPropertyValue(par.toLowerCase()));
}


/*]]>*/
</script>

</head>

<body>
<div id="tst" >
<div >
<a><img src="http://www.vicsjavascripts.org.uk/StdImages/One.gif" width="50" height="50" /></a>
<img src="http://www.vicsjavascripts.org.uk/StdImages/Two.gif" width="50" height="50" />
<img src="http://www.vicsjavascripts.org.uk/StdImages/Three.gif" width="50" height="50" />
<img src="http://www.vicsjavascripts.org.uk/StdImages/Four.gif" width="50" height="50" />
<img src="http://www.vicsjavascripts.org.uk/StdImages/Five.gif" width="50" height="50" />
<img src="http://www.vicsjavascripts.org.uk/StdImages/Six.gif" width="50" height="50" />
<img src="http://www.vicsjavascripts.org.uk/StdImages/Seven.gif" width="50" height="50" />
<img src="http://www.vicsjavascripts.org.uk/StdImages/Eight.gif" width="50" height="50" />
</div>
</div>
<a onclick="zxcSlide('H','tst',1,1000);" >Left</a> <a onclick="zxcSlide('H','tst',-1,1000);" >Right</a>
<div id="tstV" >
<div >
<a><img src="http://www.vicsjavascripts.org.uk/StdImages/One.gif" width="50" height="50" /></a>
<img src="http://www.vicsjavascripts.org.uk/StdImages/Two.gif" width="50" height="50" />
<img src="http://www.vicsjavascripts.org.uk/StdImages/Three.gif" width="50" height="50" />
<img src="http://www.vicsjavascripts.org.uk/StdImages/Four.gif" width="50" height="50" />
<img src="http://www.vicsjavascripts.org.uk/StdImages/Five.gif" width="50" height="50" />
<img src="http://www.vicsjavascripts.org.uk/StdImages/Six.gif" width="50" height="50" />
<img src="http://www.vicsjavascripts.org.uk/StdImages/Seven.gif" width="50" height="50" />
<img src="http://www.vicsjavascripts.org.uk/StdImages/Eight.gif" width="50" height="50" />
</div>
</div>
<a onclick="zxcSlide('V','tstV',1,1000);" >Up</a> <a onclick="zxcSlide('V','tstV',-1,1000);" >Down</a>
</body>

</html>
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>
<style type="text/css">
/*<![CDATA[*/

#fred {
 position:absolute;top:600px;
}

/*]]>*/
</style>
<script type="text/javascript">
/*<![CDATA[*/
// Window Progessive Scroll (29-December-2008) DRAFT
// by Vic Phillips http://www.vicsjavascripts.org.uk


// **** Executing the Effect(Script)
//
// The effect is executed by an event call to function 'zxcPScrollY(srt,fin,ms,curve);'
// where:
// parameter 0 = the start position of the effect.                                                     (digits)
// parameter 1 = the finish position of the effect.                                                    (digits)
// parameter 2 = (optional) the type of progression, 'sin', 'cos' or 'liner'.                          (string)
//                'sin' progression starts fast and ends slow.
//                'cos' progression starts slow and ends fast.
// parameter 3 = (optional) period of time between the start and finish of the effect in milliseconds. (digits or defaults to 1000 milliSeconds)
//


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


function zxcPScrollY(srt,fin,ms,curve){
 var oop=window.scrolloop;
 if (!oop) window.scrolloop=new zxcPScrollYOOP(srt,fin,ms,curve);
 else oop.update([srt,fin],ms,curve);
}

function zxcPScrollYOOP(srt,fin,ms,curve){
 this.to=null;
 this.update([srt,fin],ms,curve);
}

zxcPScrollYOOP.prototype.update=function(srtfin,ms,curve){
 clearTimeout(this.to);
 this.curve=(typeof(curve)=='string')?curve.charAt(0).toLowerCase():(this.curve)?this.curve:'x';
 this.ms=ms||1000;
 this.x=zxcScrollX();
 this.sf=[srtfin[0],srtfin[1]];
 this.inc=Math.PI/(2*this.ms);
 this.srttime=new Date().getTime();
 this.cng();
}

zxcPScrollYOOP.prototype.cng=function(){
 var ms=new Date().getTime()-this.srttime;
 window.scroll(this.x,(this.curve=='s')?Math.floor((this.sf[1]-this.sf[0])*Math.sin(this.inc*ms)+this.sf[0]):(this.curve=='c')?(this.sf[1])-Math.floor((this.sf[1]-this.sf[0])*Math.cos(this.inc*ms)):(this.sf[1]-this.sf[0])/this.ms*ms+this.sf[0]);
 if (ms<this.ms) this.to=setTimeout(function(oop){return function(){oop.cng();}}(this),10);
 else {
 }
}

function zxcScrollX(){
 if (window.innerHeight) return window.pageXOffset;
 else if (document.documentElement.clientHeight) return document.documentElement.scrollLeft;
 return document.body.scrollLeft;
}

/*]]>*/
</script>

</head>

<body>
<input type="button" name="" value="ScrollTo fred" onclick="zxcPScrollY(0,document.getElementById('fred').offsetTop,2000,'sin');"/>

<a id="fred"  >Fred</a>
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />
Line 1<br /><br />

</body>

</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/

Last edited by vwphillips; 02-06-2009 at 03:13 PM..
vwphillips is offline   Reply With Quote
Old 02-06-2009, 04:32 PM   PM User | #3
Crispy
New Coder

 
Join Date: Jun 2008
Posts: 76
Thanks: 11
Thanked 0 Times in 0 Posts
Crispy is an unknown quantity at this point
wow that's great, I'm not sure how the 2nd one works though?
Crispy 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 10:59 AM.


Advertisement
Log in to turn off these ads.