!DOCTYPE htmlとするとjavascriptが動作しない。この記述HTML5では、”px”を付けないと正常にならないとのこと。
setTimeout関数はこう使うのかと目からうろこだな。リカーシブコールになってるけど問題ないのか・・・。ちょっと分からないな。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | <!DOCTYPE html> <html lang= "ja" > <head> <meta charset= "UTF-8" > <title>画像移動</title> <script > x1 = 10; y1 = 10; x2 = 80*2; y2 = 100*2; step = 1; dx = x2 - x1; dy = y2 - y1; if (dx > dy) a = dy / dx; else a = dx / dy; x = x1; y = y1; function moveImg() { flag = true ; if (dx > dy) { x = x + step; y = a * x; if (x > x2) flag = false ; } else { y = y + step; x = a * y; if (y > y2) flag = false ; } //--注) <!DOCTYPE html>の宣言の場合 "px"をくっ付けないと動作しないように見える。 document.myIMG.style.left = x + "px" ; document.myIMG.style.top = y + "px" ; if (flag) setTimeout( "moveImg()" ,50); } </script> </head> <body topmargin= "0" leftmargin= "0" backgroung-color: "black" > <a href= "javaScript:moveImg()" >移動</a> <img src= "moon.png" name= "myIMG" style= "position:absolute;top:20px;left:10px;" ><br> <img src= "moontrans.png" style= "position:absolute;top:100px;left:80px;" ><br> <br><br><br><br> </body> </html> |