<スタイル> ボディ{ 幅:960ピクセル; マージン:40ピクセルオート; } #small { 幅:350px; 高さ:450px; 国境:1pxの固体グリーン。 位置:絶対; オーバーフロー:隠されました; } #small IMG { 幅:100%。 高さ:100%; } DIV { フロート:左; } #move { 幅:100pxに。 高さ:100pxに。 位置:絶対; トップ:0PX。 左:0PX。 背景色:黒。 表示:なし; 不透明度:0.4; } #look_girl { 位置:絶対。 左:0PX。 トップ:0PX。 } #big { ボーダー:1ピクセルの赤色の固体。 幅:340px; 高さ:340px; オーバーフロー:隠されました; 表示:なし; 位置:絶対; } </スタイル>
<身体> の<divのid = "小さな"> <IMG SRC = "./画像/ 3.JPG" /> <p個のID = "移動"> </ P> </ div> <divのID = "ビッグ"> <IMG SRC = "./画像/ 3.JPG" ID = "look_girl" /> </ div> </ BODY>
<スクリプト> VAR smallObj =のdocument.getElementById( '小さな'); VAR moveObj =のdocument.getElementById( '移動'); VAR bigObj =のdocument.getElementById( 'ビッグ'); VAR girlObj =のdocument.getElementById( 'look_girl'); smallObj.onmousemove =関数(イブ){ VAR電子=前夜|| window.event; VARするmouseX = e.clientX。 VAR mouseYの= e.clientY。 VAR moveLeft =するmouseX-smallObj.offsetLeft-moveObj.offsetWidth / 2。 VAR moveTop = mouseYの- smallObj.offsetTop-moveObj.offsetHeight / 2。 (moveLeft <0)moveLeft = 0の場合。 VAR endLeft = smallObj.offsetWidth-moveObj.offsetWidth IF(moveLeft> endLeft)moveLeft = endLeft。 IF(moveTop <0)moveTop = 0。 VAR endTop = smallObj.offsetHeight-moveObj.offsetHeight。 (moveTop> endTop)moveTop = endTop場合; moveObj.style.left = moveLeft + 'ピクセル'; moveObj.style.top = moveTop + 'ピクセル'; moveObj.style.display = 'ブロック'; bigObj.style.display = 'ブロック'; bigObj.style.left = smallObj.offsetLeft + smallObj.offsetWidth + 'ピクセル'; bigObj.style.top = smallObj.offsetTop + 'ピクセル'; VAR girlLeft = moveLeft /(smallObj.offsetWidth-moveObj.offsetWidth)*(bigObj.offsetWidth-girlObj.offsetWidth)。 VAR girlTop = moveTop /(smallObj.offsetHeight-moveObj.offsetHeight)*(bigObj.offsetHeight-girlObj.offsetHeight)。 girlObj.style.top = girlTop + 'ピクセル'; girlObj.style.left = girlLeft + 'ピクセル'; } smallObj.onmouseleave =関数(){ moveObj.style.display = 'なし'; bigObj.style.display = 'なし'; } </ SCRIPT>
アイデア: