• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:marqueeをJavascriptで書く方法)

marqueeをJavascriptで書く方法

このQ&Aのポイント
  • Javascriptでmarqueeのような動作を実装する方法について教えてください。
  • 画像が徐々に消えたり現れたりするような動作を実現するにはどうすればいいのでしょうか?
  • 指定範囲内で左から右に動く画像を表示させ、一部の範囲では表示させないようにする方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

とりあえず思いつく方法は… ・画像の一部を表示するのならclipを利用するとか  http://w3g.jp/css/display_position/clip ・あるいは親要素を設けておいて、overflow:hiddenに設定しておくとか  http://w3g.jp/css/display_position/overflow 簡単な方で、二番目を利用した例 * スクリプトは画像を移動しているだけで、後はブラウザ任せという方法 * bodyのmarginやpaddingなどがあるので、位置は正確にはご質問通りではありません。 (全角空白は半角に) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="ja"> <head><title>sample</title> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <style type="text/css"> #box{ position: relative; width: 500px; height: 50px; margin-left: 100px; overflow:hidden; } #box img{ position:absolute; } </style> </head> <body> <div id="box"> <img src="btn2.gif" alt=""> </div> <script type="text/javascript"> <!-- (function(){  var min = -100; // min position  var max = 570; // max position  var interval = 30; // 速度(インターバル)  var step = 1; // 速度(ステップ)  var left = 0; // leftの初期値  var img = document.getElementById("box").getElementsByTagName("img")[0];  var id = setInterval(function(){   left += step;   if(left > max) left = min;   img.style.left = left + "px";  }, interval); })(); //--> </script> </body> </html>

tmiyoshi
質問者

お礼

返信遅くなって申し訳ないです。 これでうまくいくようです。JavaScriptの問題というよりは、ブラウザの表示方法の仕方の問題ということですね。 ありがとうございました。

その他の回答 (1)

回答No.2

時間が無いので、コード自体は掛けませんが、 クローンでDOMを複製して、移動距離だけ調整すればいかがでしょうか。

関連するQ&A

専門家に質問してみよう