/** * HTMLWidget$Scrollbar (ie6.0, 7.0, op 9.0, ff2.0) * * @author ilzzang (msn : nhn@ilzzang.net / email : il3e@naver.com) * * 2007/02/01 * */ (function(){ var a = { push : function() { for(var i=0; i < arguments.length; i++) { this[this.length] = arguments[i]; } return this.length; }, pop : function() { var el = this[Math.max(this.length-1,0)]; if (this.length) this.length--; return el; }, shift : function() { var el = this[0]; for(var i=0; i < this.length-1; i++) { this[i] = this[i+1]; } if (this.length) this.length--; return el; }, unshift : function() { var a = new Array(arguments.length+this.length); for(var i=a.length-1; i > -1; i--) { a[i] = (i < arguments.length)?arguments[i]:this[i-arguments.length]; } for(var i=0; i < a.length; i++) { this[i] = a[i]; } } }; var f = { call : function(obj) { var r,a = []; obj.prototype['__jindo_call__'] = this; switch (arguments.length) { case 1: return obj.__jindo_call__(); break; case 2: return obj.__jindo_call__(arguments[1]); break; case 3: return obj.__jindo_call__(arguments[1],arguments[2]); break; default: for(var i=1;iiContentsScrollHeight ? iScrollbarTrackHeight : Math.floor((iContentsHeight*iScrollbarTrackHeight)/iContentsScrollHeight)); var iTrackSpaceHeight=this._def.iTrackSpaceHeight=iScrollbarTrackHeight-iHandleHeight; var iContentSpaceHeight=this._def.iContentSpaceHeight=iContentsScrollHeight-iContentsHeight; var iHandleTrackRatio=this._def.iHandleTrackRatio=2; var iContentsTrackRatio=this._def.iContentsTrackRatio=this._def.iContentSpaceHeight/this._def.iTrackSpaceHeight; /* ±×¸®´Ù... */ iHandleHeight==iScrollbarTrackHeight ? this.setDraw("hideScrollbar") : this.setDraw("showScrollbar"); this.setDraw("handleHeight",iHandleHeight); }, setDraw : function() { var s=arguments[0]; var o=arguments[1]; switch(s) { case "hideScrollbar" : Element.hide(this._opt.oScrollbarObj); break; case "showScrollbar" : Element.show(this._opt.oScrollbarObj); break; case "handleHeight" : Element.setCSS(this._opt.oHandleObj,{height:o+"px"}); break; case "handlePosition" : Element.setCSS(this._opt.oHandleObj,{top:o+"px"}); break; case "contentsPosition" : this._opt.oContentsObj.scrollTop=o; break; } }, setEvent : function() { var s=arguments[0]; var evt=arguments[1],o=arguments[1]; switch(s) { case "up" : var iHandlePosition=parseInt(Element.getCSS2(this._opt.oHandleObj,"top"))-this._def.iHandleTrackRatio; if(iHandlePosition<0) {iHandlePosition=0;} var iContentsTrackRatio=this._def.iContentsTrackRatio*iHandlePosition; this.setDraw("handlePosition",iHandlePosition); this.setDraw("contentsPosition",iContentsTrackRatio); break; case "dn" : var iHandlePosition=this._def.iHandleTrackRatio+parseInt(Element.getCSS2(this._opt.oHandleObj,"top")); var iContentsTrackRatio=this._def.iContentsTrackRatio*iHandlePosition; if(this._def.iHandleTrackRatio>this._def.iTrackSpaceHeight-parseInt(Element.getCSS2(this._opt.oHandleObj,"top"))) {iHandlePosition=this._def.iTrackSpaceHeight;} this.setDraw("handlePosition",iHandlePosition); this.setDraw("contentsPosition",iContentsTrackRatio); break; case "handleMouseUp" : this._def.iMouseDownTrackLayerSaveY=0; break; case "handleMouseDown" : this._def.iMouseDownTrackLayerSaveY=(typeof(evt.layerY)=="undefined") ? evt.offsetY : evt.layerY; break; case "handleMouseMove" : var iRealPos=Element.realPos(this._opt.oTrackObj); var iHandlePosition=evt.page_y-iRealPos.top-this._def.iMouseDownTrackLayerSaveY; var iContentsTrackRatio=this._def.iContentsTrackRatio*iHandlePosition; if(iHandlePosition<0) { iHandlePosition=0; }else if(iHandlePosition>=this._def.iTrackSpaceHeight){ iHandlePosition=this._def.iTrackSpaceHeight; } this.setDraw("handlePosition",iHandlePosition); this.setDraw("contentsPosition",iContentsTrackRatio); break; case "mouseWheel" : break; } }, setContentsInnerHTML : function() { var oTarget=arguments[0]; this._opt.oContentsObj.innerHTML=oTarget; this.doReset(); }, setContentsAppendObject : function() { var oOriginal=arguments[0]; var oTarget=arguments[1]; oOriginal.appendChild(oTarget); this.doReset(); } }); this.Class=ScrollbarClass; } // ----------------------------------------------------------------------------------------- // // ----------------------------------------------------------------------------------------- // // ----------------------------------------------------------------------------------------- // // ----------------------------------------------------------------------------------------- // // ----------------------------------------------------------------------------------------- // var action_variety = { version : '0.9', auth : 'comeonjoo' }; var Av = action_variety; /* ±ÛÀÚ°¡ ±æ¾î¼­ ¤»*/ // Div ·Ñ¸µ.. Av.rolling = Class.create({ initialize: function() { this.id = '';; //Ç¥½Ã id this.direction = ''; //¹æÇâ this.width = 0; // Ç¥½Ã °¡·Î this.height = 0; // Ç¥½Ã ¼¼·Î this.data = null; // this.start_no = 0; this.duration = 0.2; this.delay_time = 3; this.start_duration_time = this.duration + 0.1; this.start_resource = null; this.move_up_left =''; this.move_down_right = ''; this.now_direction = ''; this.auto_start = false; //var av = this.dom_write.bindAsEventListener(this); //document.observe( "dom:loaded",av); }, dom_write: function() { this.now_direction = this.direction; var dom = "
"; var style = "width: "+this.width+"px; height: "+this.height+"px;"; if( this.direction == 'right' || this.direction == 'left' ) { for( var i=0; i< this.data.length; i++) { var left = -(this.width*(this.data.length - i ) ); dom += "
"+this.data[i]+"
"; } for( var i=0; i< this.data.length; i++) { var left = this.width*i; dom += "
"+this.data[i]+"
"; } } if( this.direction == 'up' || this.direction == 'down' ) { for( var i=0; i< this.data.length; i++) { var top = -(this.height*(this.data.length - i ) ); dom += "
"+this.data[i]+"
"; } for( var i=0; i< this.data.length; i++) { var top = this.height*i; dom += "
"+this.data[i]+"
"; } } dom += "
"; //alert(dom); $( this.id ).update( dom ); if( this.auto_start == true) { this.start_resource = new PeriodicalExecuter( this.moving.bind(this, this.direction),this.delay_time); Event.observe(this.id+'_move','mouseover', this.hold.bindAsEventListener(this) ); Event.observe(this.id+'_move','mouseout', this.restart.bindAsEventListener(this) ); if( this.move_up_left != '' && $(this.move_up_left) ) { Event.observe(this.move_up_left, 'mouseover', this.hold.bindAsEventListener(this) ); Event.observe(this.move_up_left, 'mouseout', this.restart.bindAsEventListener(this) ); Event.observe(this.move_up_left, 'click', this.start_duration_time_up.bindAsEventListener(this) ); } if( this.move_down_right != '' && $(this.move_down_right) ) { Event.observe(this.move_down_right, 'mouseover', this.hold.bindAsEventListener(this) ); Event.observe(this.move_down_right, 'mouseout', this.restart.bindAsEventListener(this) ); Event.observe(this.move_down_right, 'click', this.start_duration_time_up.bindAsEventListener(this) ); } } }, start_duration_time_up : function() { //$('start').update( this.start_no ); this.start_duration_time = 0; new PeriodicalExecuter( this.start_duration_time_uping.bind(this), 0.1); }, start_duration_time_uping : function() { if( this.start_duration_time < 10 ) { this.start_duration_time += 0.1; } }, hold : function() { this.start_resource.pause(); }, restart : function() { this.start_resource.restart(); }, moving : function(dr) { var dr_move = ( dr ) ? dr:this.direction; if( this.start_duration_time > this.duration ) { if ( this.now_direction != dr_move ) { this.start_no = (this.data.length*2)-this.start_no; this.start_no = ( this.start_no == (this.data.length*2) ) ? 0: this.start_no; this.now_direction = dr_move; } switch (dr_move) { case 'left': var xx = -this.width; var yy = 0; var interval = this.data.length * this.width; $(this.id+"_body_"+this.start_no).setStyle({'left':interval+'px'}); break; case 'right': var xx = this.width; var yy = 0; var interval = -((this.data.length+1) * this.width); $(this.id+"_body_"+( (this.data.length * 2 ) - ( this.start_no +1 ) )).setStyle({'left':interval+'px'}); break; case 'up': var xx = 0 var yy = -this.height; var interval = this.data.length * this.height; $(this.id+"_body_"+this.start_no).setStyle({'top':interval+'px'}); break; case 'down': var xx = 0; var yy = this.height; var interval = -((this.data.length+1) * this.height); $(this.id+"_body_"+( (this.data.length * 2 ) - ( this.start_no +1 ) )).setStyle({'top':interval+'px'}); break; } this.start_no++; if( this.start_no == (this.data.length * 2) ) this.start_no = 0; for( var i=0; i< this.data.length*2; i++) { new Effect.Move( this.id+'_body_'+i, { duration: this.duration, x: xx, y: yy, transition: Effect.Transitions.sinoidal }); } } } });