• 2827阅读
  • 1回复

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

楼层直达
网页内图片移动代码:用来实现Web页面图片移动托拽的代码段 以下这段JS是主要解决在画面生成Image项目,并通过鼠标事件进行脱拽、移动等操作的代码。 DAQozhP8  
<script language="javascript" type="text/javascript"> ;"]?&ri  
var top,left; lin  
var src,drag,dir,ope,refer,halfwidth; \ mg  
var unit=30; D)bR-a_^  
eb7~\|9l1i  
var aryItems,itemNum=10,index,isInit,id,max=23; ew1bb K>  
Z[9f8/6<b  
function PageLoad() :s#&nY  
{ \= Wrh3  
    document.form1.onsubmit=OnSubmit; c1h?aP  
]lA.?  
    aryItems=new Array(itemNum); "2GssBa  
    top=document.getElementById("TABLE").getClientRects()[0].top; ^i6`w_/  
    left=document.getElementById("TABLE").getClientRects()[0].left; 2$1D+(5;  
     vR'rYDtU@  
    if(document.getElementById("__Gantt").value!=null&&document.getElementById("__Gantt").value!="") 3/*<i  
    { E7j9A`  
        var gantt=document.getElementById("__Gantt").value; PZhpp"  
        var array=gantt.split(";"); q[TW  
        var length=array.length-1; d5 U+]g  
        var start,width,item; "U iv[8B  
         @H|3e@5([  
        for(index=0;index<length;index++) P*{*^D N  
        { jfsbvak  
            item=array[index].split(","); at5=Zo[bP  
            start=item[0]; lvIdYf$?  
            width=item[1]; S01 Bc  
             XV:icY  
            id="Item"+index; b[ .pD3  
            aryItems[index]=id; mE3M$2}  
             AOR(1Qyo  
            var track = document.createElement("IMG"); o 9{~F`{p  
            track.setAttribute("id",id); 'A#F< x  
            track.setAttribute("src","blue.gif"); ljw>[wNv  
yZqX[U  
            document.body.appendChild(track); $+p4X# _  
            document.getElementById(id).style.position="absolute"; A#8Dv&$Pr  
            document.getElementById(id).style.top=top+unit*index; +!)v=NY  
            document.getElementById(id).style.left=left+unit*start; @/0-`Y@?  
            document.getElementById(id).width=unit*width; 3ew`e"s  
            document.getElementById(id).style.zIndex=9; 4/M~#  
        }  v{ *#  
    } 0ntf%#2{  
    else @>SirYh  
    { WwYy[3U  
        for(index=0;index<itemNum;index++) cuW&X9\m,  
        { 6;vfl*  
            id="Item"+index; C lekB  
            aryItems[index]=id; euc|G Xs  
             N)N\iad^  
            var track = document.createElement("IMG"); 2#?qey  
            track.setAttribute("id",id); BA t0YE`-,  
            track.setAttribute("src","blue.gif"); m C &*K  
vS_Ji<W~E  
            document.body.appendChild(track); |H7f@b]Sk  
            document.getElementById(id).style.position="absolute"; ^CWxYDG*  
            document.getElementById(id).style.top=top+unit*index; (np60mX<  
            document.getElementById(id).style.left=left+unit*index; ` $N()P  
            document.getElementById(id).width=unit; m"y_@Jk  
            document.getElementById(id).style.zIndex=9; 1L\\](^ 3  
        } aHdXlmL  
    } c.;}e:)s  
    drag=false; >^5U XQr  
    left=document.getElementById(aryItems[0]).getClientRects()[0].left; vv% o+r-t  
} jj$D6f/mOG  
:497]c3#5C  
function OnDrag() ndCHWhi  
{ mv;;0xH  
    if(event.srcElement.tagName!="IMG"&&!drag) `C+>PCO  
    { 1x8zub B  
        if(event.srcElement.id=="btnTrim") 8pZGu8  
        { |k ]{WCD]  
//            OnTrim(); MJDW-KL-  
        } V^[B=|56  
    } 9J $"Qt5;6  
    else Pv#>j\OR&  
    { $ 9%UAqk9  
        if(!drag) zD z"Dn9  
        { {I:nza  
            src=event.srcElement; C1ZuDL)e  
            halfwidth=src.width/2; r-aCa/4y!  
            drag=true; \]y /EOT  
             FIEA 'kUy  
            //  方向の判断 .s8u?1b  
            if(event.clientX<src.getClientRects()[0].left+halfwidth) j+6`nN7L  
            { &RL j^A!  
                dir="Backward"; E$1P H)  
                refer=src.getClientRects()[0].left+src.width; N6thbH@  
            } Y4j%K~ls Y  
            else u`~,`z^{n  
            { _p^&]eQ+k#  
                dir="Forward"; >tQ$V<YB  
                refer=src.getClientRects()[0].left; 9J4gDw4<  
            } /)/>/4O  
             K^f&+`v6_  
            //  操作の判断:1.移動・2.縮小/拡大 B +<i=w  
            if(event.shiftLeft) GEbm$\  
            { m#a1N  
                ope="Move"; ee\xj$,  
                refer=event.clientX-src.getClientRects()[0].left; 6 ~.{~+Bd  
            } Zy&?.d[z  
            else ^\3r}kJ0Lp  
            { gq~6 jf>  
                ope="Scale"; F$nc9x[S  
            } "Kc1@EX=  
        } =QJI_veUG`  
        else -W'T3_  
        { {No Y`j5S  
            if(ope=="Scale") w7`09oJm  
            { Xn # v!  
                var sleft=Math.ceil((src.getClientRects()[0].left-left)/unit-1)*unit+left; @D+2dT0[M  
                var header=src.getClientRects()[0].left-src.getClientRects()[0].left; Y wu > k  
                var tail=src.width-header-Math.ceil((src.width-header)/unit)*unit; M=#'+CF}W  
                var swidth=Math.ceil((src.width-header)/unit)*unit; MNu\=p\Eq  
                if(header>0) s~g0VNu Y  
                { #H-EOXy  
                    swidth=swidth+unit; 5h@5.-}  
                } 91\]Dg  
                if(tail>0) ?~=5 x  
                { \Y^GA;AMQQ  
                    swidth=swidth+unit; e!oL!Zg  
                } Yx':~  
                src.style.left=sleft; UoOxGo  
                src.width=swidth; M~P h/  
            } s}g3*_"  
             6oy[0hj  
            if(ope=="Move") 5 Mz6/&`  
            { !P@4dG  
                src.style.left=Math.ceil((src.getClientRects()[0].left-left)/unit-1)*unit+left; St;@ZV  
            } ,)PpE&  
             @j'GcN vs  
            drag=false; i#:M2&twE  
            OnTrim() ",P?jgs^g5  
        } :uB(PeAv*  
    } ?e2G{0V  
} `*y%[J,I#  
vf?Xt  
function OnScale() ', P_a,\  
{ &/8B (0<  
    if(src!=null&&drag) OXS.CFZM  
    { 'tJxADK  
        if(ope=="Scale") : $N43_Wb  
        { 58t~? 2E  
        //  縮小/拡大の場合 #@m6ag.  
            if(dir=="Forward") qAi:F=> X  
            { X3HJ3F;==  
                if(event.clientX-refer>=unit) 1pP q)}=+  
                { ubQr[/  
                    src.width=event.clientX-refer; *0Wkz'=U  
                } \-D[C+1(  
            } F%$l cQ04%  
            else dQ Lo,S8(  
            { # blh9.V&F  
                if(refer-event.clientX>unit) qdo_YPG  
                { .&.L@CRH  
                    src.style.left=event.clientX; ]F #0to  
                    src.width=refer-src.getClientRects()[0].left; )h1 `?q:5  
                } \zzPsnFIg  
            } S+l>@wa)|  
        } c3*9{Il^  
        else S*%:ID|/C2  
        { :Yn{:%p  
        //  移動の場合 - XB[2h  
            src.style.left=event.clientX-refer; AjINO}b  
        } |sBL(9  
    } *}Rd%'  
     h([qq<Lzs  
    if(event.srcElement!=null) 5D>cbzP@  
    { 8xHjdQr  
        if(event.srcElement.tagName=="IMG") QY$4D;M`g6  
        { P c vA/W  
            if(event.clientX<event.srcElement.getClientRects()[0].left+unit/2) 6+Y@dJnPT  
            { +'UxO'v3]  
                event.srcElement.style.cursor="w-resize"; (ewcj\l4*  
            } Rr>""  
            else r8!M8Sc  
            { sJ|IW0Mr  
                event.srcElement.style.cursor="e-resize"; @fd{5 >\  
            } /7C %m:  
        } l%7^'nDn  
    } M:w]g`LKl  
} T\L LOx\  
dNz!2mbO  
function OnTrim() 8C2!Wwz`J8  
{ R= *vPS  
    var pre,post; H$]FUv8  
    for(index=0;index<itemNum-1;index++) YR$d\,#R  
    { E)F"!56lV  
        pre=document.getElementById(aryItems[index]); ~kPZh1n`  
        post=document.getElementById(aryItems[index+1]); 3/2G~$C  
        if(pre.getClientRects()[0].left+pre.width!=post.getClientRects()[0].left) F% K}&3  
        { S31+ j:"  
            post.style.left=pre.getClientRects()[0].left+pre.width-2; k'+Mc%pg4E  
        } 5}2XnM2  
    } =%oKYQ  
     A+F@JpV  
    for(index=0;index<itemNum;index++) OAtn.LU  
    { -m>ng E~q  
        pre=document.getElementById(aryItems[index]); /|{~GD +A&  
        if(pre.getClientRects()[0].left>=left+unit*max) $qj||zA  
        { =qVD"Z]z  
            pre.style.left=left+unit*max-2; ;]Bkw6 o  
            pre.width=unit; w@ =Uf7  
        } ;p'Ej'E  
         U49 `!~b7  
        if((pre.getClientRects()[0].left<left+unit*max)&&(pre.getClientRects()[0].left+pre.width>left+unit*max)) lGtTZ cg  
        { S^4T#/  
            pre.width=left+unit*max-pre.getClientRects()[0].left; 5Mq7l$]h$  
        } x4vowF  
    } /NFcIU  
} :=K <2  
VaRP+J}UA.  
function OnSubmit() 1WW`%  
{ 9!sR}  
    var t=""; IDpW5Dc  
    for(index=0;index<itemNum;index++) 60 z =bd]  
    { ir ^XZVR  
        t=t+((document.getElementById(aryItems[index]).getClientRects()[0].left-left)/unit).toString(); ;K9rE3  
        t=t+","; AH#eoKu  
        t=t+(document.getElementById(aryItems[index]).width/unit).toString(); y=)xo7 (  
        t=t+";"; 4D-4BxN*  
    } y`OL^D4  
    document.getElementById("__Gantt").value=t; 4/tp-dBip  
} 7FiQTS B:  
T$ )dc^  
document.onmousedown=OnDrag; V@"Y"}4n4  
document.onmousemove=OnScale; oHbG-p  
</script>
只看该作者 安逸沙发  发表于: 2014-11-27
当有一个Button做表单提交的时候,会先执行OnSubmit代码段。而在服务器端的操作就是把从客户端发送过来的东西原封不动地发挥去,其中可以加入对数据的修改过程,也可以是通过一进入页面就倒入数据而达到生成画面的目的。 <)}*S  
    Protected Sub Button1_Click()Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click 9-@w(kMu  
        Response.Write(Request.Params.Item("__Gantt") & "<BR>") khIh<-s!  
        Dim strGantt As String = Request.Params.Item("__Gantt") kSJWQ  
        ClientScript.RegisterHiddenField("__Gantt", strGantt) ecF I"g  
z[';HJ0O;  
YcGqT2oLP  
w7 QIKsI0  
    End Sub S:5Nh^K  
-ZuzJAA  
    Protected Sub Page_Load()Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Y,8M[UIK  
        If Not IsPostBack Then >S~#E,Tg  
            ClientScript.RegisterHiddenField("__Gantt", String.Empty) 8Yj(/S3y  
        End If bH= 5[  
    End Sub希望对大家有用。
快速回复

限100 字节
安逸网提示:如果您在写长篇帖子又不马上发表,建议存为草稿
 
认证码:
上一个 下一个