[求解]:关于“批选择”的实现方法,伙计们请进。。
COPY后运行 - 按主鼠标左键拖动,就知道我问什么了。
<HTML xmlns:v>
<STYLE>v\:*{behavior:url(#default#VML);}</STYLE>
<BODY oncontextmenu='return false' onselectstart='return false'>
<v:rect class=keshi style=position:absolute;display:none;z-index:5000 id=rect1 fillcolor=#eeeeee>
<v:Stroke dashstyle="dashdot"/>
<v:fill opacity=".5"/>
</v:rect>
<script>
var xx=0,yy=0
function document.onmousedown(){
xx=event.x;yy=event.y;
rect1.style.left=xx;rect1.style.top=yy;rect1.style.width=0;rect1.style.height=0;rect1.style.display=""
}
function document.onmousemove(){
tempx=event.x;tempy=event.y
if(tempx-xx<0){rect1.style.left=tempx;rect1.style.width=(xx-tempx)}else{rect1.style.width=(tempx-xx)}
if(tempy-yy<0){rect1.style.top=tempy;rect1.style.height=(yy-tempy)}else{rect1.style.height=(tempy-yy)}
}
function document.onmouseup(){ //关键是该这一部分
alert("选定的所有对象(所有被灰色矩型边框触及、或遮住的)对象颜色变绿\n\nVML写法是obj[i].fillcolor='green'\n\n只是我得不到所有obj的对象集合、无法通过DHTML访问目标\n\n我目前的解决思路是“循环用document.elementFromPoint(x,y)方法,循环捕捉矩形区域内每一个像素(比如矩形大小300*200,就循环捕捉500个点阵下是否有对应的对象,最后在归总,将得到的对象存进可变的数组做为今后编程的引用)”。\n\n不过我感觉这比较麻烦,效率也不会太快吧。所以我想在埋头着手测试编写该程序前,想先问问大家,还有没有更好的、其他的办法?或者就用该方法但有效率很高的实例?或是DHTML的window、document、obj/this有专门的这类函数方法?\n\n记的幻宇的js星际online就有这种实现(选兵打仗、挖矿),但不知是用了什么办法哪? - 最不爱干的事就是看一大堆的代码^-^\n\nGOGO,请高人闪亮登场 - “献码+解说”。")
rect1.style.display="none"
}
</script>
<!--以下代码无须理会-->
<v:oval id=vml8 style="Z-INDEX:3014;LEFT:329;WIDTH:25;POSITION:absolute;TOP:191;HEIGHT:26" fillcolor="#fd434d" strokecolor="black" strokeweight="1px"/>
<v:oval id=vml9 style="Z-INDEX:3015;LEFT:380;WIDTH:72;POSITION:absolute;TOP:206;HEIGHT:42" fillcolor="#fd434d" strokecolor="black" strokeweight="1px"/>
<v:oval id=vml10 style="Z-INDEX:3016;LEFT:389;WIDTH:46;POSITION:absolute;TOP:268;HEIGHT:27" fillcolor="#fd434d" strokecolor="black" strokeweight="1px"/>
<v:oval id=vml11 style="Z-INDEX:3017;LEFT:344;WIDTH:33;POSITION:absolute;TOP:326;HEIGHT:36" fillcolor="#fd434d" strokecolor="black" strokeweight="1px"/>
<v:oval id=vml12 style="Z-INDEX:3018;LEFT:221;WIDTH:36;POSITION:absolute;TOP:381;HEIGHT:51" fillcolor="#fd434d" strokecolor="black" strokeweight="1px"/>
<v:oval id=vml13 style="Z-INDEX:3019;LEFT:338;WIDTH:82;POSITION:absolute;TOP:459;HEIGHT:39" fillcolor="#fd434d" strokecolor="black" strokeweight="1px"/>
<v:oval id=vml14 style="Z-INDEX:3020;LEFT:527;WIDTH:43;POSITION:absolute;TOP:215;HEIGHT:50" fillcolor="#fd434d" strokecolor="black" strokeweight="1px"/>
<v:oval id=vml15 style="Z-INDEX:3021;LEFT:504;WIDTH:54;POSITION:absolute;TOP:294;HEIGHT:51" fillcolor="#fd434d" strokecolor="black" strokeweight="1px"/>
<v:oval id=vml16 style="Z-INDEX:3022;LEFT:644;WIDTH:104;POSITION:absolute;TOP:101;HEIGHT:57" fillcolor="#fd434d" strokecolor="black" strokeweight="1px"/>
<v:oval id=vml17 style="Z-INDEX:3023;LEFT:687;WIDTH:65;POSITION:absolute;TOP:262;HEIGHT:34" fillcolor="#fd434d" strokecolor="black" strokeweight="1px"/>
<v:rect id=vml18 style="Z-INDEX:3024;LEFT:565;WIDTH:63;POSITION:absolute;TOP:356;HEIGHT:76" fillcolor="#fd434d" strokecolor="black" strokeweight="1px"/>
<v:rect id=vml19 style="Z-INDEX:3025;LEFT:658;WIDTH:104;POSITION:absolute;TOP:391;HEIGHT:77" fillcolor="#fd434d" strokecolor="black" strokeweight="1px"/>
<v:rect id=vml20 style="Z-INDEX:3026;LEFT:359;WIDTH:24;POSITION:absolute;TOP:265;HEIGHT:28" fillcolor="#fd434d" strokecolor="black" strokeweight="1px"/>
<v:rect id=vml21 style="Z-INDEX:3027;LEFT:570;WIDTH:41;POSITION:absolute;TOP:141;HEIGHT:51" fillcolor="#fd434d" strokecolor="black" strokeweight="1px"/>
<v:rect id=vml22 style="Z-INDEX:3028;LEFT:507;WIDTH:48;POSITION:absolute;TOP:194;HEIGHT:40" fillcolor="#fd434d" strokecolor="black" strokeweight="1px"/>