
以下のコードで、幅670ピクセルの範囲で100~600ピクセルの範囲で左から右に動く動画を表示させて、0~100と600~670の範囲では表示させないようにする動作を繰り返しているのですが、
100で画像が現れる時と、600で画像が消えていく時に、いっぺんに消えたり現れたりするのではなく、marqueeのようにその境界で、徐々に消えたり現れたりするように動作を変更したいのですが、これをJavascritoで実行したい場合、どういった書き方をすればいいのでしょうか?
ご経験のある方は、御教示願えればと思います。
<html>
<head>
<title>指定範囲内を動き続ける画像</title>
<script type="text/javascript">
xmin = 0; // 左 動く範囲の設定
ymin = 0; // 上
xmax = 670; // 右
ymax = 360; // 下
xmid_l = 100;
xmid_u = 600;
//x = 1;
// y = 1;
function move(){ // 画像の移動
img1.style.pixelLeft = img1.style.pixelLeft + 1;
if((img1.style.pixelLeft >= xmin) && (img1.style.pixelLeft <= xmid_l )) {
img1.style.visibility = 'hidden';
}
if((img1.style.pixelLeft >= xmid_l) && (img1.style.pixelLeft <= xmid_u )) {
img1.style.visibility = 'visible';
}
if((img1.style.pixelLeft >= xmid_u) && (img1.style.pixelLeft <= xmax )) {
img1.style.visibility = 'hidden';
}
if(img1.style.pixelLeft >= xmax) {
// x = 2;
img1.style.pixelLeft = 0;
}
}
function tm(){ // タイマー
setInterval("move()",30);
}
</script>
</head>
<body onLoad="tm()">
<img src="./img/img2.gif" ID="img1" STYLE="position:absolute;top:100;left:200">
</body>
</html>
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>
返信遅くなって申し訳ないです。
これでうまくいくようです。JavaScriptの問題というよりは、ブラウザの表示方法の仕方の問題ということですね。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- 工学 制御工学の問題について 1 2022/10/22 17:42
- 工学 制御工学の問題について 1 2022/10/22 11:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- 工学 制御工学の問題について 1 2022/10/22 17:44
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- 経済学 資本移動や価格変動のない次のような固定為替レート・モデルを考える。 C = 10 + 0.8 Y I 3 2022/06/21 20:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クリックとダブルクリック
-
矩形のホットスポットにマウス...
-
【jQuery】複数の画像の読み込...
-
リンクをオーバーマウスで画像表示
-
インラインフレームでのクッキ...
-
クリックしたらJavaScriptで数...
-
javascript 画像切り替え ラン...
-
アクセス毎に画像を順番に切替...
-
mailto における TAG自動変換を...
-
javascriptで画像処理
-
jcarouselliteについてです。
-
マウスオーバーで画像の切替で...
-
テキストにマウスオーバーで画...
-
吹き出しに画像とコメントを入...
-
lightbox 誤作動 JAVA
-
jQuery要素 + <select></select...
-
jQueryで特定id以外の下にある...
-
ブラウザで表示されている罫線...
-
画像にロールオーバーするとメ...
-
ジャバスクリプトでクリックし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
window.openで値の渡し方を教え...
-
jQueryでサーバー上のファイル...
-
imgのsrcに値を設定するには
-
インラインフレームでのクッキ...
-
画像の座標位置取得
-
JavaScriptで画面サイズによっ...
-
画像をクリックして変数に値を代入
-
スライドショーとスワップイメージ
-
marqueeをJavascriptで書く方法
-
mailto における TAG自動変換を...
-
イメージマップ内のロールオー...
-
jQueryで画像を重ねる
-
javascriptで画像処理
-
クリックしたらJavaScriptで数...
-
イベントハンドラを完全に外部...
-
Class属性をJavaScriptで動的に...
-
続・時間によって表示される画...
-
このスクリプトで画像クリック...
-
画像と文字を同時に切り替えたい
-
セレクトボックスの組み合わせ...
おすすめ情報