<div style="border:1px solid #CCC; width:500px; height:415px; background:url(xxx/c.jpg);" id="jelle_warpper"> <div style="width:100px; height:50px; border:1px solid #CCC;" id="jelle_move"></div> </div> <script type="text/javascript"> var mp=function (e){//獲取鼠標坐標 請傳遞evnet參數 e = e || window.event; var m=(e.pageX || e.pageY)?{ x:e.pageX, y:e.pageY } : { x:e.clientX + document.body.scrollLeft - document.body.clientLeft, y:e.clientY + document.body.scrollTop - document.body.clientTop }; return m; } var move2=function(o,t){//請提前設置CSS position:absolute;并激活filter:alpha(opacity=100); //o相應鼠標拖動的區域ID T被移動對象的ID o=$j(o); t=$j(t); by_o={x:o.offsetLeft,y:o.offsetTop}; o.onmousemove=function(ev){ //var mxy=Jelle.getMouseP(ev);//獲取當前鼠標坐標 var by={x:t.offsetLeft,y:t.offsetTop}; var ms=mp(ev); t.innerHTML=(by_o.x-by.x)+"---"+(by_o.x-by.y); jy=ms.y-by_o.y-25; jx=ms.x-by_o.x-50; maxy=415-50;//減去移動框的高度 maxx=500-100;//減去移動框的寬度 var y=jy>=maxy?maxy:jy<=0?0:jy; var x=jx>=maxx?maxx:jx<=0?0:jx; t.style.marginTop=y+"px"; t.style.marginLeft=x+"px"; } } move2("jelle_warpper","jelle_move") </script>
解決了上面的我問題。那么這個效果就不難了。! 我們可以獲得了 一個 x y, 恰好這個 x y 可以用來設置大圖背景的 x y。 這里我們值得注意的事。要把握好大圖與小圖的比例。 還有就是顯示圖片的DIV 與移動的DIV 比例。 比如我這里的比例: 大圖800*800 小圖是200*200 顯示大圖的DIV 200*200 移動的div 50*50。 其實我還沒總結出這個公式。繞的有點頭暈呵呵。 下面我貼出全部代碼: