root/galaxy-central/static/scripts/packed/galaxy.ui.scrollPanel.js @ 2

リビジョン 2, 1.7 KB (コミッタ: hatakeyama, 14 年 前)

import galaxy-central

行番号 
1$.ui.plugin.add("draggable","scrollPanel",{drag:function(h,i){var k=$(this).data("draggable");clearTimeout(k.timeout);var b=i.options,d=k.element,a=b.panel,c=a.position(),j=a.width(),f=a.height();viewport=a.parent();viewport_w=viewport.width(),viewport_h=viewport.height(),element_w=d.width(),element_h=d.height(),moved=false,close_dist=5,nudge=23,p_min_x=-(j-viewport_w),p_min_y=-(f-viewport_h),p_max_x=0,p_max_y=0,min_vis_x=-c.left,max_vis_x=min_vis_x+viewport_w,min_vis_y=-c.top,max_vis_y=min_vis_y+viewport_h,mouse_x=i.position.left+k.offset.click.left;mouse_y=i.position.top+k.offset.click.top;if((c.left<p_max_x)&&(mouse_x-close_dist<min_vis_x)){var l=Math.min(nudge,p_max_x-c.left);a.css("left",c.left+l);moved=true;k.offset.parent.left+=l;i.position.left-=l}if((!moved)&&(c.left>p_min_x)&&(mouse_x+close_dist>max_vis_x)){var l=Math.min(nudge,c.left-p_min_x);a.css("left",c.left-l);moved=true;k.offset.parent.left-=l;i.position.left+=l}if((!moved)&&(c.top<p_max_y)&&(mouse_y-close_dist<min_vis_y)){var l=Math.min(nudge,p_max_y-c.top);a.css("top",c.top+l);var g=a.position().top-c.top;k.offset.parent.top+=g;i.position.top-=g;moved=true}if((!moved)&&(c.top>p_min_y)&&(mouse_y+close_dist>max_vis_y)){var l=Math.min(nudge,c.top-p_min_x);a.css("top",(c.top-l)+"px");var g=c.top-a.position().top;k.offset.parent.top-=g;i.position.top+=g;moved=true}i.position.left=Math.max(i.position.left,0);i.position.top=Math.max(i.position.top,0);i.position.left=Math.min(i.position.left,j-element_w);i.position.top=Math.min(i.position.top,f-element_h);if(moved){$.ui.ddmanager.prepareOffsets(k,h)}if(moved){k.old_e=h;k.timeout=setTimeout(function(){k.mouseMove(h)},50)}},stop:function(c,b){var a=$(this).data("draggable");clearTimeout(a.timeout)}});
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。