JavaScript初心者です。Windows7とGoogleChromeを主に使っています。
<!DOCTYPE html>
<html><head><title>animation</title>
<script src="js/jquery-1.11.0.min.js"></script>
<style>
#area{ width:420px;height:320px;text-align:center;background:gray; }
</style>
</head>
<body>
<div id="area"><br><img src='slideshow/photo0.jpg'></div>
<button id="move">PLAY</button>
<script>
time=200;lastcode=10;
count=0;
$("#move").mouseover(function(){ anime=setInterval(nextfilm,time); })
.mouseout(function(){ clearInterval(anime); });
nextfilm=function()
{ if(count==lastcode)count=0
else{count++;} ;
// count=(count==lastcode)? 0 : count+1;
bufa="<br><img src='slideshow/photo"+count+".jpg'>";
$("#area").html(bufa);
}
</script>
</body>
</html>
slideshowフォルダにphoto0~10.jpg(400×300px)という画像を用意し、カーソルをPLAYボタンに乗せると0.2秒間隔で次々に画像を見せるクレイアニメ及びスライドショー再生プログラムをごくシンプルに作ってみました。
実行してみると、けっこうチカチカします。画像タイプの問題かなとも思いアニメーションによく使われるgifファイルも作って試しましたが、変わりません。よく見たら、同じ画像をgifにしたらデータ量が倍以上あるんですね。
このちらつき現象、時折チカチカせずスムーズになることもあり、常時スムーズだといいのにと思うのですが、ではこれはハード的な問題でプログラムで抑止することは不可能ということでしょうか?抑止できるとしたらどんな書き方があるのでしょうか?
チカチカさせる効果の紹介はネット上でも多いのですが、逆にチカチカしてしまうのを抑えたいとなると参考にできるページに行き当たらず、ここで質問に思い立った次第です。
どなたかご教示お願いします。
No.2ベストアンサー
- 回答日時:
画像のロード時間のせいみたいなので、
最初に
.hide { display:none}のようなcssを定義。
photo0~phpto10まで、全てのimgタグを作り、class=hide をつける。
としておき、setIntervalの中で、
#area > img にeach()でhideをつける。
見せたい1つのimgだけはhideを外す。
としてはどうでしょうか。
画像ロード時間に問題ありというご意見を参考に
.hide{ position:absolute;left:10px;top:10px; }画像全部の配置場所を固定して
<p><img class="hide" src=~~></p>とタグを画像分だけ#area中に設けて
$("#area p").each(function(){$(this).hide();});
$("#area p:first").show();
スクリプト初期設定時点でjQueryで画像消去と最初の画像表示を行い
$("#area p").each(function(){$(this).hide();});
$("#area p:eq("+count+")").show();
setInterval側の画像差し替え動作をこうしてみたところ、
成功しました。すっきりしました。ありがとうございました。
ちなみに、画像読み込み場所を1箇所に重ねずページに読み込み({display:none;}にしておく)、$("#area").html()←にimgタグを送り込むやり方も試してみましたが、これも画像読み込みを済ませてあるのに、最初と大差ないちらつくアニメでした。
画像ロードを先に済ませれば大丈夫と思ったら、そうもいかないものですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jQueryで同じクラス名のものを...
-
jQueryでのドラッグアンドドロ...
-
デフォルト非表示にしたい。【t...
-
clear機能を失わずにファイルア...
-
MAX関数を使ってからLEFT JOIN...
-
CSS のみのタブ切り替えについて
-
createElementで作成した要素を...
-
[急ぎ] videoタグで埋め込んだm...
-
jqueryで要素の中身を要素の外...
-
スクロール可能なチェックボックス
-
jspでcssが読み込めない
-
eclipseでcssを使うためには?
-
htmlの記述で link rel=styles...
-
アコーディオン自動開閉メニュ...
-
SimplyScrollについて
-
JQuery UIで、表示したタブの中...
-
divのheight指定で画面一杯に表...
-
【初心者】UWSCでjavascriptで...
-
チェックボックスに入っている...
-
jQueryアコーディオンで複数メ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
デフォルト非表示にしたい。【t...
-
jQueryで同じクラス名のものを...
-
Colorboxがうまく設置できません
-
Javascript初心者|jQueryの.va...
-
jQueryでのドラッグアンドドロ...
-
アップロードファイルの種類に...
-
embed要素のsrc属性の値を変更...
-
fancyboxのポップアップ時の画...
-
JQueryで画像の上で文字を動かす
-
一定時間で入れ替わるバナー画...
-
ボタンを押すたびに交互に切り...
-
交互に入れ替わる画像を複数配置
-
全部のサイコロをjavascriptで...
-
clear機能を失わずにファイルア...
-
JavaScriptが、Firefoxで動かな...
-
bxsliderで最初に縦に複数表示...
-
「画像クリックで音声再生」を ...
-
画像マウスオーバーで、checkb...
-
イラストのボタンを押したとき...
-
背景色と連動するスライドショ...
おすすめ情報