I would like to change the variable of an object with a slider. For example, I have an object with variable zoom, how would I add a slider function to the script to change this variable? I am a little confused about event handling. Any help would be much appreciated.
I am posting the code (which actually was done by one of this forum's members) in case it may make understanding/explanation simpler.
I am posting the code (which actually was done by one of this forum's members) in case it may make understanding/explanation simpler.
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[*/ .tstparent { position:relative;overflow:hidden;left:50px;top:50px;width:800px;height:500px;border:solid red 1px; } #tst { position:relative;left:0px;top:0px;width:700px;height:500px; } .window { width:200px;height:150px;border:solid white 2px; } /*]]>*/ </style> <script type="text/javascript"> /*<![CDATA[*/ // Zoom Image (28-August-2011) // by Vic Phillips http://www.vicsjavascripts.org.uk/ function zxcZoomImage(o){ var img = document.getElementById(o.ID); var obj = img.parentNode; var window = document.createElement('DIV'); var zimg = document.createElement('IMG'); var src = o.ZoomSRC; var zoom = o.Zoom; zoom = typeof(zoom)=='number'?zoom:2; var os=o.ZoomWindowOffset; window.style.position = 'absolute'; window.style.overflow = 'hidden'; window.style.visibility = 'hidden'; window.style.zIndex= '2' ; window.className = o.WindowClassName; zimg.style.position = 'absolute'; zimg.style.width = img.width*zoom+'px'; zimg.style.height = img.height*zoom+'px'; zimg.src = typeof(src)=='string'?src:img.src; window.appendChild(zimg); obj.appendChild(window); this.window = window; this.zimg = zimg; this.wh = [obj.offsetWidth,obj.offsetHeight]; this.zoom = zoom; this.os = typeof(os)=='object'&& os.constructor==Array && typeof(os[0])=='number'&& typeof(os[1])=='number'?os:[-window.offsetWidth/2,-window.offsetHeight/2]; this.wos = [-(zoom-1)*window.offsetWidth/2,-(zoom-1)*window.offsetHeight/2]; // to center the zoom on the pointer this.addevt(document,'mousemove','imgzoom',obj); } zxcZoomImage.prototype={ imgzoom:function(e,obj){ var mse=this.mse(e); var pos=this.pos(obj); var x=mse[0]-pos[0]; var y=mse[1]-pos[1]; var wh=this.wh; var os=this.os; var wos=this.wos; var window=this.window; var zimg=this.zimg; var zoom=this.zoom; if (x>0&&x<wh[0]&&y>0&&y<wh[1]){ x+=os[0]; y+=os[1]; window.style.left=x+'px'; window.style.top=y+'px'; zimg.style.left=-x*zoom+wos[0]+'px'; zimg.style.top=-y*zoom+wos[1]+'px'; window.style.visibility='visible'; } else { window.style.visibility='hidden'; } }, mse:function(e){ if (window.event){ var docs=[document.body.scrollLeft,document.body.scrollTop]; if (!document.body.scrollTop){ docs=[document.documentElement.scrollLeft,document.documentElement.scrollTop]; } return [e.clientX+docs[0],e.clientY+docs[1]]; } return [e.pageX,e.pageY]; }, pos:function(obj){ var rtn=[0,0]; while(obj){ rtn[0]+=obj.offsetLeft; rtn[1]+=obj.offsetTop; obj=obj.offsetParent; } return rtn; }, 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); }); } } // end of prototype declarations /*]]>*/ </script> <script type="text/javascript"> /*<![CDATA[*/ function Init(){ new zxcZoomImage({ ID:'tst', // the unique ID name of the image to zoom. (string) WindowClassName:'window', // the class name of the zoom window DIV element. (string) Zoom:4, //(optional) the zoom factor. (number, default = 2) ZoomSRC:'scia_no2_trop_2009.gif', //(optional) the file path and name of the zoom image. //... (string, default = the src of the image to zoom) ZoomWindowOffset:[-100,-75] //(optional) the zoom window x and y offsets from the mouse position. //... (array, default = centered on the mouse position) }); } if (window.addEventListener){ window.addEventListener('load',Init, false); } else if (window.attachEvent){ window.attachEvent('onload',Init); } /*]]>*/ </script> </head> <body> <noscript> <!-- <meta http-equiv="refresh" content="0;url=index2.htm;" /> --> <b>Your browser does not support JavaScript or it is disabled. <br> Please enable JavaScript to be able to zoom the map. </b> </noscript> <div class="tstparent" > <img id="tst" src="scia_no2_trop_2009.gif" alt="img" /> </div> </body> </html>
Comment