• 2826阅读
  • 1回复

网页内图片移动代码:用来实现Web页面图片移动托拽的代码段

楼层直达
网页内图片移动代码:用来实现Web页面图片移动托拽的代码段 以下这段JS是主要解决在画面生成Image项目,并通过鼠标事件进行脱拽、移动等操作的代码。 i i&kfy  
<script language="javascript" type="text/javascript"> t* eZe`|  
var top,left; o"h* @.  
var src,drag,dir,ope,refer,halfwidth; j$v2_q  
var unit=30; s*% pNE U  
kB~KC-&O  
var aryItems,itemNum=10,index,isInit,id,max=23; MP"Pqt  
m"3gTqG  
function PageLoad() :)7{$OR&  
{ jm~(OLg  
    document.form1.onsubmit=OnSubmit; TNgf96) y  
ZWJ%t'kF  
    aryItems=new Array(itemNum); W>jgsR79M  
    top=document.getElementById("TABLE").getClientRects()[0].top; > wsS75n1  
    left=document.getElementById("TABLE").getClientRects()[0].left; St9+/Md=jQ  
     s Yp?V\Y"  
    if(document.getElementById("__Gantt").value!=null&&document.getElementById("__Gantt").value!="") R^t )~\d  
    { wD9Gl.uQ  
        var gantt=document.getElementById("__Gantt").value; w?u4-GT  
        var array=gantt.split(";"); h7 uv0a~0  
        var length=array.length-1; ~lg1S  
        var start,width,item; 'j6)5WL$  
         e-@=QI^,  
        for(index=0;index<length;index++) (<.uvq61  
        { a04I.5!  
            item=array[index].split(","); bKAR}JM&  
            start=item[0]; 6LVJ*sjSy  
            width=item[1]; .W[[Z;D  
             L\O}q  
            id="Item"+index; ux8:   
            aryItems[index]=id; I $5*Puy#  
             1m$< %t.>  
            var track = document.createElement("IMG"); {9 PeBc  
            track.setAttribute("id",id); x37pj)i/  
            track.setAttribute("src","blue.gif"); 9!aQ@ J^  
"0ITW46n  
            document.body.appendChild(track); #gHs!b-g@  
            document.getElementById(id).style.position="absolute"; ]GSs{'Uh B  
            document.getElementById(id).style.top=top+unit*index; U}r^M( s!  
            document.getElementById(id).style.left=left+unit*start; \|OW`7Q)k  
            document.getElementById(id).width=unit*width; "q-,140_  
            document.getElementById(id).style.zIndex=9; c(]NpH in  
        } vCPiT2G  
    } - %ul9}.  
    else `0]kRA8=  
    { z x7fRd$  
        for(index=0;index<itemNum;index++) )^G&p[G  
        { %B;e 7 UJ  
            id="Item"+index; iMrNp  
            aryItems[index]=id; L(a){<c  
             yAge2m]<B  
            var track = document.createElement("IMG"); q- U/JC  
            track.setAttribute("id",id); q~3dbj  
            track.setAttribute("src","blue.gif"); UR/l M,N;  
$LS$:%i4  
            document.body.appendChild(track); U1+X!&OCp  
            document.getElementById(id).style.position="absolute"; 7~t,Pt)  
            document.getElementById(id).style.top=top+unit*index; E(5'vr0  
            document.getElementById(id).style.left=left+unit*index; _x.!, g{  
            document.getElementById(id).width=unit; +1K9R\  
            document.getElementById(id).style.zIndex=9; ;P` z ?>J:  
        } yq3i=RB(  
    } ~*Fbs! ;,  
    drag=false; c,$ >u,4  
    left=document.getElementById(aryItems[0]).getClientRects()[0].left; tgu}^TfKkg  
} Gw"H#9J} T  
1-@[th  
function OnDrag() Et\z^y  
{ g~5$X{  
    if(event.srcElement.tagName!="IMG"&&!drag) ]fN\LY6p  
    { ,W"[q~  
        if(event.srcElement.id=="btnTrim") p'lL2 n$E  
        { ;~&F}!pQ  
//            OnTrim(); /{eD##vhP  
        } `QH-VR\_  
    } PcXz4?Q$  
    else 58x=CN\QU  
    { )aW;w|#n  
        if(!drag) 7Eo a~  
        { D0'L  
            src=event.srcElement; M2UF3xD   
            halfwidth=src.width/2; 0PiD<*EA  
            drag=true; [LDV*79Z  
             D%L}vugxK  
            //  方向の判断 Czj]jA(0f  
            if(event.clientX<src.getClientRects()[0].left+halfwidth) 3lw KV  
            { 1SddZ5  
                dir="Backward"; W(^R-&av  
                refer=src.getClientRects()[0].left+src.width; _J'V5]=4  
            } IYeX\)Gv&  
            else [PVem  
            { FW](GWp`:  
                dir="Forward"; L9,;zkgo  
                refer=src.getClientRects()[0].left; {0a (R2nB  
            } 5u(,g1s}UZ  
             *fz]Q>2ga  
            //  操作の判断:1.移動・2.縮小/拡大 1y\ -Iz^  
            if(event.shiftLeft) [^oTC;  
            { %}T' 3  
                ope="Move"; F]_w~1 n5  
                refer=event.clientX-src.getClientRects()[0].left; 5somoV B  
            } a]JQZo1$  
            else ]UtfI  
            { S6Er# )k  
                ope="Scale"; BWtGeaW/sr  
            } u\)2/~<]  
        } /w5~ O:  
        else %jS#DVxBR  
        { u~JCMM$  
            if(ope=="Scale") UKfC!YR2J8  
            { 71g\fGG\  
                var sleft=Math.ceil((src.getClientRects()[0].left-left)/unit-1)*unit+left; {pzu1*  
                var header=src.getClientRects()[0].left-src.getClientRects()[0].left; L%h Vts'  
                var tail=src.width-header-Math.ceil((src.width-header)/unit)*unit; ZxvqLu  
                var swidth=Math.ceil((src.width-header)/unit)*unit; e*nT+Rp  
                if(header>0) mN!5JZ' 2  
                { .aA 8'/  
                    swidth=swidth+unit; 1\hh,s  
                } U]8 @  
                if(tail>0) equ|v~@ y  
                { E~b Yk6  
                    swidth=swidth+unit; rM{3]v{~  
                } s#nd:$p3  
                src.style.left=sleft; \!]Zq#*kH  
                src.width=swidth; ]>:LHW  
            } w^rINPAS  
             )/B' ODa  
            if(ope=="Move") |= xK-;qs  
            { t%B ,ATW  
                src.style.left=Math.ceil((src.getClientRects()[0].left-left)/unit-1)*unit+left; t9Sog~:'  
            } O<H5W|cM  
             I_h8)W  
            drag=false; !8z,}HUdK  
            OnTrim() ^hMJNy&R  
        } szDd!(&pv  
    } RV&=B%w+  
} 9"#,X36  
,rC$~ &  
function OnScale() T&/ ]|4  
{ FA+'E  
    if(src!=null&&drag) U^xz>:~  
    { 7M#irCX  
        if(ope=="Scale") #cZ<[K q6  
        { Oh|KbM*vS  
        //  縮小/拡大の場合 &2,0?ra2&  
            if(dir=="Forward") ?FRuuAS  
            { Y[8GoqE|  
                if(event.clientX-refer>=unit) ;:%*h2  
                { B9&$sTAB  
                    src.width=event.clientX-refer; 74c[m}'S  
                } &azy1.i~  
            } 9CxFj)#5F  
            else _!} L\E~  
            { Hkv4^|  
                if(refer-event.clientX>unit) )5O E~}>  
                { ?q %&"  
                    src.style.left=event.clientX; LO&/U4:  
                    src.width=refer-src.getClientRects()[0].left; z :q9~  
                } u@{z xYn  
            } )qL UHE=  
        } y-/,,,r  
        else a#k=! W  
        { 3R=R k  
        //  移動の場合 G""L1?  
            src.style.left=event.clientX-refer; 9bxBm  
        } @N%/v*  
    } z K+C&X  
     uYu/0fQD  
    if(event.srcElement!=null) w~n7l97Pw  
    { iem@ K  
        if(event.srcElement.tagName=="IMG") Xe J|Z)qZ  
        { dTwZ-%  
            if(event.clientX<event.srcElement.getClientRects()[0].left+unit/2) A{QXzoWkg0  
            { ?vd_8C2B  
                event.srcElement.style.cursor="w-resize"; pT ;{05  
            } 9cO m$  
            else 4P(ysTuM  
            { VY#:IE:T  
                event.srcElement.style.cursor="e-resize"; sgRD]SF  
            } l|Z<pD  
        } ?u)[xEx6}+  
    } =D"H0w <zw  
} ENEnHu^  
WL6p+sN'  
function OnTrim() !6 k{]v  
{ x|6# /m  
    var pre,post; <r1N6(n  
    for(index=0;index<itemNum-1;index++) EA/+~ux  
    { 6$l6>A  
        pre=document.getElementById(aryItems[index]); c/g"/ICs  
        post=document.getElementById(aryItems[index+1]); yU"'h[^  
        if(pre.getClientRects()[0].left+pre.width!=post.getClientRects()[0].left) Q.dHg7+D  
        { 5nhc|E)C  
            post.style.left=pre.getClientRects()[0].left+pre.width-2; j1LL[+G-"_  
        } ?_NhR   
    } p(5'|eqBV  
     SLiQHWw*J  
    for(index=0;index<itemNum;index++) u}[Z=V  
    { kp+\3z_  
        pre=document.getElementById(aryItems[index]); 4eOQP  
        if(pre.getClientRects()[0].left>=left+unit*max) A#"AqNVWv  
        { wN])"bmB  
            pre.style.left=left+unit*max-2; u.}z}'-  
            pre.width=unit; a*8^M\>m4  
        } D;V FM P  
         8#Q=CTjF  
        if((pre.getClientRects()[0].left<left+unit*max)&&(pre.getClientRects()[0].left+pre.width>left+unit*max)) V0]6F  
        { sQT0y(FW  
            pre.width=left+unit*max-pre.getClientRects()[0].left;  LWb5C{  
        } v :YW[THre  
    } PZQb.QAn  
} 1or4s{bmo  
p5!=Ur&A c  
function OnSubmit() HNA/LJl[VU  
{ RNyw`>  
    var t=""; r@3VN~  
    for(index=0;index<itemNum;index++) 7P`|wNq  
    { Y5~_y?BX  
        t=t+((document.getElementById(aryItems[index]).getClientRects()[0].left-left)/unit).toString(); 21$YZlhJ  
        t=t+","; pJ6Z/3]  
        t=t+(document.getElementById(aryItems[index]).width/unit).toString(); eI@LVi6<b  
        t=t+";"; slV+2b  
    } ,C88%k  
    document.getElementById("__Gantt").value=t; ?Sj3-*/?  
} (~P b,Q  
TOo0rcl  
document.onmousedown=OnDrag; O_#Ag K<A  
document.onmousemove=OnScale; }g:y!p k  
</script>
只看该作者 安逸沙发  发表于: 2014-11-27
当有一个Button做表单提交的时候,会先执行OnSubmit代码段。而在服务器端的操作就是把从客户端发送过来的东西原封不动地发挥去,其中可以加入对数据的修改过程,也可以是通过一进入页面就倒入数据而达到生成画面的目的。 U`5/tNx  
    Protected Sub Button1_Click()Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click fI1 9p Q  
        Response.Write(Request.Params.Item("__Gantt") & "<BR>") 0a bQY  
        Dim strGantt As String = Request.Params.Item("__Gantt") crN*eFeW  
        ClientScript.RegisterHiddenField("__Gantt", strGantt) k/sfak{Q  
SN]g4}K-  
iQS,@6  
_ Yc"{d3S  
    End Sub Ga-cto1Y  
/|<S D.:  
    Protected Sub Page_Load()Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load j--byk6PB  
        If Not IsPostBack Then _>rM[\|X  
            ClientScript.RegisterHiddenField("__Gantt", String.Empty) nO!&;E&  
        End If H%gAgXHn  
    End Sub希望对大家有用。
快速回复

限100 字节
安逸网提示:批量上传需要先选择文件,再选择上传
 
认证码:
上一个 下一个